按名称查询报表的SQL查询,其中多列按状态计数



是否可以通过sql查询生成一个按名称、按状态计数的报表组。

表格:

  • 项目(id,name,status_id,service_id(
  • 状态(id、名称(
  • 服务(id,name(

我需要做一个报告,按服务的状态组计数:

列结果:服务名称、状态名称1、状态名称2、状态名称3、总

行结果:

service name 1, 30, 10, 20, 60
service name 2, 10, 5, 40, 55
service name 3, 0, 2, 8, 10

您似乎想要联接和条件聚合:

select se.name as service_name,
sum(case when st.name = 'status 1' then 1 else 0 end) as cnt_status_1,
sum(case when st.name = 'status 2' then 1 else 0 end) as cnt_status_2,
sum(case when st.name = 'status 3' then 1 else 0 end) as cnt_status_3,
count(*) as total
from project p
inner join status  st on st.id = p.status_id
inner join service se on se.id = p.service_id
group by se.id, se.name

相关内容

  • 没有找到相关文章

最新更新