select 年龄='45以上',人数=count(*) from T where nl>45 union all select 年龄='45以下',人数=count(*) from T where nl<=45
谢谢楼上的 但是我要用一句SQL语句来实现啊
CREATE TABLE #T(年龄 int) INSERT INTO #T SELECT 12 INSERT INTO #T SELECT 23 INSERT INTO #T SELECT 45 INSERT INTO #T SELECT 66 INSERT INTO #T SELECT 21 INSERT INTO #T SELECT 34 INSERT INTO #T SELECT 55 INSERT INTO #T SELECT 61SELECT CASE WHEN 年龄 >45 THEN '45以上' ELSE '45以下' END AS 年龄 ,COUNT(CASE WHEN 年龄>45 THEN 1 ELSE 0 END) AS 人数 FROM #T GROUP BY CASE WHEN 年龄 >45 THEN '45以上' ELSE '45以下' END/* 年龄 人数 --------------------- 45以上 3 45以下 5 */ DROP TABLE #T
from T
where nl>45
union all
select 年龄='45以下',人数=count(*)
from T
where nl<=45
但是我要用一句SQL语句来实现啊
INSERT INTO #T SELECT 12
INSERT INTO #T SELECT 23
INSERT INTO #T SELECT 45
INSERT INTO #T SELECT 66
INSERT INTO #T SELECT 21
INSERT INTO #T SELECT 34
INSERT INTO #T SELECT 55
INSERT INTO #T SELECT 61SELECT CASE WHEN 年龄 >45 THEN '45以上' ELSE '45以下' END AS 年龄
,COUNT(CASE WHEN 年龄>45 THEN 1 ELSE 0 END) AS 人数
FROM #T
GROUP BY
CASE WHEN 年龄 >45 THEN '45以上' ELSE '45以下' END/*
年龄 人数
---------------------
45以上 3
45以下 5
*/
DROP TABLE #T