我试图显示每个年龄从计算出生日期列的计数,但问题是它将只出生日期分组,因此有很多显示重复的年龄。这里是我的查询:按年龄分组按年龄计算从出生日期SQL Server
SELECT
DATEDIFF(hh, p.p_dob, GETDATE())/8766 AS Age,
COUNT(DISTINCT s.s_studentreference) AS 'Count'
FROM
moduleenrolment e
INNER JOIN
module m ON m.m_id = e.e_module
INNER JOIN
person p ON p.p_id = e.e_student
INNER JOIN
student s ON s.s_id = p.p_id
WHERE
m.m_reference LIKE '11%'
AND LEN(m.m_reference) <= 12
AND e.e_status IN ('A', 'W', 'C')
GROUP BY
p.p_dob
ORDER BY
p.p_dob DESC
这是对结果
12 1
13 1
14 1
14 1
14 1
14 1
14 1
14 1
14 1
14 1
14 1
样品我一直在寻找的是
12 1
13 1
14 9
我试过了,我得到了以下错误:因为它不是在聚合函数或GROUP BY子句中包含 – Will
列“person.p_dob”是在ORDER BY子句无效。 – Will
就像我说的,由**和**命令通过'DATEDIFF(hh,p.p_dob,GETDATE())/ 8766' – LittleBobbyTables