TSQL 窗口函数
Posted
技术标签:
【中文标题】TSQL 窗口函数【英文标题】:TSQL Window Function 【发布时间】:2020-07-09 15:56:16 【问题描述】:我有一个三列的表格:
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
我想要最终得到一个看起来像这样的表格(注意:不需要 SurveyQuestion #3)
Survey SurveyAnswer1 SurveyAnswer2
1859 Yes Happy with outcome, thanks
2000 No Rep was a d1ck.
我只是想不出该怎么做...我尝试了几种方法,包括LEAD
/LAG
,但无法让它工作...我想我只需要有人来指出我正确的方向????
【问题讨论】:
【参考方案1】:那是四列 ;)
您可以使用旧的聚合作为交叉表栗子:
select Survey,
SurveyAnswer1 = max(iif(SurveyQuestion = 1, SurveyAnswer, null)),
SurveyAnswer2 = max(iif(SurveyQuestion = 2, SurveyAnswer, null))
from YourTable
where SurveyQuestion != 3
group by Survey
【讨论】:
以上是关于TSQL 窗口函数的主要内容,如果未能解决你的问题,请参考以下文章