TSQL Window 函数
TSQL Window Function
我有一个包含三列的 table:
Survey QuestionName SurveyQuestion SurveyAnswer
1859 Satisfied? 1 Yes
1859 Comments? 2 Happy with outcome, thanks
1859 Phone Number? 3 Not Answered
2000 Satisfied? 1 No
2000 Comments? 2 Rep was a d1ck.
2000 Phone Number? 3 5166569999
我想得到的结果是 table 看起来像这样(注意:不需要 SurveyQuestion #3)
Survey SurveyAnswer1 SurveyAnswer2
1859 Yes Happy with outcome, thanks
2000 No Rep was a d1ck.
我只是想不出该怎么做...我已经尝试了几种方法,包括 LEAD
/LAG
,但无法让它工作...我我想我只需要有人为我指明正确的方向
那是四列 ;)
您可以使用旧的聚合作为交叉表栗子:
select Survey,
SurveyAnswer1 = max(iif(SurveyQuestion = 1, SurveyAnswer, null)),
SurveyAnswer2 = max(iif(SurveyQuestion = 2, SurveyAnswer, null))
from YourTable
where SurveyQuestion != 3
group by Survey
我有一个包含三列的 table:
Survey QuestionName SurveyQuestion SurveyAnswer
1859 Satisfied? 1 Yes
1859 Comments? 2 Happy with outcome, thanks
1859 Phone Number? 3 Not Answered
2000 Satisfied? 1 No
2000 Comments? 2 Rep was a d1ck.
2000 Phone Number? 3 5166569999
我想得到的结果是 table 看起来像这样(注意:不需要 SurveyQuestion #3)
Survey SurveyAnswer1 SurveyAnswer2
1859 Yes Happy with outcome, thanks
2000 No Rep was a d1ck.
我只是想不出该怎么做...我已经尝试了几种方法,包括 LEAD
/LAG
,但无法让它工作...我我想我只需要有人为我指明正确的方向
那是四列 ;)
您可以使用旧的聚合作为交叉表栗子:
select Survey,
SurveyAnswer1 = max(iif(SurveyQuestion = 1, SurveyAnswer, null)),
SurveyAnswer2 = max(iif(SurveyQuestion = 2, SurveyAnswer, null))
from YourTable
where SurveyQuestion != 3
group by Survey