数据机构这样的
供应商名称 任务名称 任务状态
三星 A start
三星 B start
三星 C start
三星 D complete
联想 A complete
联想 B complete
联想 C start
联想 D start要求用一条语句查询各个供应商总共任务数,开始(start)任务数,提交任务数不知道能不能实现
供应商名称 任务名称 任务状态
三星 A start
三星 B start
三星 C start
三星 D complete
联想 A complete
联想 B complete
联想 C start
联想 D start要求用一条语句查询各个供应商总共任务数,开始(start)任务数,提交任务数不知道能不能实现
select 供应商名称,sum(1),sum(case when 任务状态 = 'start' then 1 else 0 end ), sum(case when 任务状态 = 'complete' then 1 else 0 end )
from your_table
group by 供应商名称
Count(Decode(任务状态,'start' ,1)) 开始(start)任务数,
Count(Decode(任务状态,'complete' ,1)) 提交任务数
FROM 表
GROUP BY 供应商名称
sum(Decode(任务状态,'start' ,1)) 开始(start)任务数,
sum(Decode(任务状态,'complete' ,1)) 提交任务数
FROM 表
GROUP BY 供应商名称
SELECT '三星' NAME1,'A' NAME2,'start' STATUS FROM dual
UNION ALL
SELECT '三星' ,'B' ,'start' FROM dual
UNION ALL
SELECT '三星' ,'C' ,'start' FROM dual
UNION ALL
SELECT '三星' ,'D' ,'complete' FROM dual
UNION ALL
SELECT '联想' ,'A' ,'complete' FROM dual
UNION ALL
SELECT '联想' ,'B' ,'complete' FROM dual
UNION ALL
SELECT '联想' ,'C' ,'start' FROM dual
UNION ALL
SELECT '联想' ,'D' ,'start' FROM dual
)
SELECT NAME1 供应商名称,Count(NAME2) 总共任务数,
Count(Decode(STATUS,'start' ,1)) 开始任务数,
Count(Decode(STATUS,'complete' ,1)) 提交任务数
FROM A
GROUP BY NAME1
结果:
供应商名称 总共任务数 开始任务数 提交任务数
三星 4 3 1
联想 4 2 2