我有下表“任务”
ID | 任务 | 类型 | 花的时间 |
---|---|---|---|
1 | 任务1 | 类型1 | 01h:00m |
2 | 任务1 | 类型2 | 02h:00m |
3 | 任务 2 | 类型1 | 00h:30m |
4 | 任务 2 | 类型2 | 00h:30m |
5 | 任务 3 | 类型1 | 01h:00m |
6 | 任务 3 | 类型2 | 04h:00m |
我想从 Tasks 表中创建一个新表,它应该是
任务 | type1_time | type2_time |
---|---|---|
任务1 | 01h:00m | 02h:00m |
任务 2 | 00h:30m | 00h:30m |
任务 3 | 01h:00m | 04h:00m |
你能帮我建立一个 sql 查询吗?
每个任务和类型都有一个条目。当您想按任务分组时,您可以使用MIN
或MAX
访问类型的值,因为只有一个。
select
task,
min(case when type = 'type1' then time_taken end) as type1time,
min(case when type = 'type2' then time_taken end) as type2time
from tasks
group by task
order by task;
这称为条件聚合,因为我们在条件上使用聚合函数(此处:当行匹配所需类型时)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句