我在SQL Server中有以下的表:
-----------------------------
ID Age Gender
1 30 F
2 35 M
3 32 M
4 18 F
5 21 F
我需要做的是执行一个查询,将记录按照给定的范围分组并计算出现次数。结果需要在直方图(条形图)中显示。我尝试了类似以下的查询:
SELECT
count(CASE WHEN Age>= 10 AND Age < 20 THEN 1 END) AS '10 - 20',
count(CASE WHEN Age>= 21 AND Age < 30 THEN 1 END) AS '21 - 30',
count(CASE WHEN Age>= 31 AND Age < 35 THEN 1 END) AS '31 - 35',
count(CASE WHEN Age>= 36 AND Age < 40 THEN 1 END) AS '36 - 40',
FROM (SELECT Age FROM Attendees) AS AgeGroups
目前,这个方法可以解决问题,但是没有考虑性别列。它将生成一个单独的行,统计每个年龄组的频率:
10-20 21-30 31-35 36-40
0 22 21 13
如果考虑性别,应该显示两条记录,分别对应每个性别。我需要看到类似于以下内容:
Gender 10-20 21-30 31-35 36-40
M 0 12 9 6
F 0 10 12 7
我应该如何处理这个问题?