选择并按两列分组

时间:2014-09-18 14:38:35

标签: sql sql-server

我有一个表格,用于存储在特定范围内得分的用户数量。我正在尝试设计一个查询,以显示在该范围内得分的学生总数。该表因其日志表而具有重复性。这里有桌子

enter image description here

这是我的查询

select id, min, max, count(Score) 
from Scorelogs

我知道我必须使用" COUNT"在查询中但我不知道如何按最小和最大分组。

3 个答案:

答案 0 :(得分:2)

您只想按范围进行分组:

select "min", "max", sum(score)
from data
group by "min", "max"
order by 1, 2;

请注意,minmax是列的非常差的名称,因为它们与具有相同名称的内置函数冲突。

答案 1 :(得分:1)

使用as,在此方案中,不生成id。

select min,max, count(Score) from Scorelogs group by min,max

或者您可以使用

 select ROW_NUMBER() 
    OVER (ORDER BY max) AS id, min,max, count(Score) from Scorelogs group by min,max

答案 2 :(得分:1)

SELECT ROW_NUMBER() OVER(ORDER BY min,max) as id, 
       min,
       max, 
       SUM(Score) 
FROM   Scorelogs 
GROUP BY min,max

<强> Fiddle Demo