分组列可能不明确

时间:2016-11-18 22:43:53

标签: sql group-by

假设我有下表

SurveyID, Question 1, Question 2
--------------------------------
1       |     5    |    NULL
1       |    NULL  |    9
2       |     7    |    NULL
2       |    NULL  |    10
3       |     9    |    NULL
3       |    NULL  |    10

我如何通过SurveyID分组获得问题1和1的1条记录? 2?

我试过......

SELECT SurveyID, [Question 1], [Question 2]
GROUP BY SurveyID, [Question 1], [Question 2]

这给了我上面的结果,我正在寻找下面的那个。

SurveyID, Question 1, Question 2
--------------------------------
1       |     5    |    9
2       |     7    |    10
3       |     9    |    10

1 个答案:

答案 0 :(得分:2)

未指定数据检索规则,因此我假设您希望获得每个surveyid的最大值。如果是这种情况,请使用汇总函数max

select 
  surveyid,
  max([Question 1]) as [Question 1], 
  max([Question 2]) as [Question 2]
from yourtable
group by surveyid

请注意,GROUP BY子句现在只包含我们希望在输出中获取一条记录的每个值的surveyid。