34,588
社区成员
发帖
与我相关
我的任务
分享
/*CREATE TABLE test (姓名 VARCHAR(10), 里程 DECIMAL(4,2), 结果 varchar(10))
INSERT INTO test
SELECT '张三', 1, '合格'
UNION ALL
SELECT '张三', 3, '合格'
UNION ALL
SELECT '张三', 2 , '不合格'
UNION ALL
SELECT '张三', 1.5, '合格'
UNION ALL
SELECT '张三', 2 , '不合格'
*/
SELECT 姓名,SUM(CASE WHEN 结果='合格' THEN 里程 ELSE 0 END) 里程,合格数=COUNT (CASE WHEN 结果='合格' THEN 1 ELSE null END) ,不合格数=COUNT (CASE WHEN 结果='不合格' THEN 1 ELSE null END )
FROM test
GROUP BY 姓名
/*
姓名 里程 合格数 不合格数
---------- --------------------------------------- ----------- -----------
张三 5.50 3 2
警告: 聚合或其他 SET 操作消除了 Null 值。
(1 行受影响)
*/
/*CREATE TABLE test (姓名 VARCHAR(10), 里程 DECIMAL(4,2), 结果 varchar(10))
INSERT INTO test
SELECT '张三', 1, '合格'
UNION ALL
SELECT '张三', 3, '合格'
UNION ALL
SELECT '张三', 2 , '不合格'
UNION ALL
SELECT '张三', 1.5, '合格'
UNION ALL
SELECT '张三', 2 , '不合格'
*/
SELECT 姓名,SUM(里程) 里程,合格数=COUNT (CASE WHEN 结果='合格' THEN 1 ELSE null END) ,不合格数=COUNT (CASE WHEN 结果='不合格' THEN 1 ELSE null END )
FROM test
GROUP BY 姓名
/*
姓名 里程 合格数 不合格数
---------- --------------------------------------- ----------- -----------
张三 9.50 3 2
警告: 聚合或其他 SET 操作消除了 Null 值。
(1 行受影响)
*/