当前位置: 代码迷 >> Sql Server >> 求累计
  详细解决方案

求累计

热度:43   发布时间:2016-04-24 09:35:44.0
求合计
id     age        sex
1       25          男
2        24         男
3        25         女
4        25         女
5       24         男
6       24         男



想要的结果是    得到男性的信息


25       3      1                      这个结果是25岁有3个,有1个男性
24       3     3                       这个结果是25岁有3个,有3个男性




------解决思路----------------------
select age,count(*),sum(case sex when '男' then 1 else 0 end)
from t
group by age
------解决思路----------------------
SELECT age,SUM(1)
,SUM(CASE WHEN sex='男' THEN 1 ELSE 0 END
FROM TB
GROUP BY age

------解决思路----------------------
CREATE TABLE TEMP_NAME(ID INT,AGE INT,SEX NVARCHAR(20))

INSERT INTO TEMP_NAME 
SELECT 1,25,N'男'
UNION ALL
SELECT 1,24,N'男'
UNION ALL
SELECT 1,25,N'女'
UNION ALL
SELECT 1,25,N'女'
UNION ALL
SELECT 1,24,N'男'
UNION ALL
SELECT 1,24,N'男'


SELECT AGE,SEX,COUNT(1) FROM dbo.TEMP_NAME WHERE SEX =N'男' GROUP BY AGE,SEX

DROP TABLE TEMP_NAME
  相关解决方案