我有一个表格,用于存储在特定范围内得分的用户数量。我正在尝试设计一个查询,以显示在该范围内得分的学生总数。该表因其日志表而具有重复性。这里有桌子
这是我的查询
select id, min, max, count(Score)
from Scorelogs
我知道我必须使用" COUNT"在查询中但我不知道如何按最小和最大分组。
答案 0 :(得分:2)
您只想按范围进行分组:
select "min", "max", sum(score)
from data
group by "min", "max"
order by 1, 2;
请注意,min
和max
是列的非常差的名称,因为它们与具有相同名称的内置函数冲突。
答案 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 强>