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