我当前的 SQL 查询返回响应为:
select count(*) as count, appointment_status
, cast(created_time as date) as date
from appointment_master
where created_time >= '2024-01-21'
group by appointment_status, cast(created_time as date)
order by CAST(created_time as date)
count appointment_status date
3 Arrived 22/01/2024
11 Prescribed 22/01/2024
4 Arrived 23/01/2024
13 Prescribed 23/01/2024
3 Arrived 24/01/2024
10 Prescribed 24/01/2024
我想要一个所需的输出:
Date Arrived Prescribed
22/01/2024 3 11
23/01/2024 4 13
24/01/2024 3 10
我现有的表数据是:
code appointment_status created_time
1167 Prescribed 2024-01-22
1172 Prescribed 2024-01-22
1174 Prescribed 2024-01-22
1177 Prescribed 2024-01-22
1185 Arrived 2024-01-22
1192 Prescribed 2024-01-23
1194 Prescribed 2024-01-23
1198 Prescribed 2024-01-23
1223 Prescribed 2024-01-23
有人可以帮忙吗?
您可以使用
case
和 group by
来旋转结果集。示例查询类似于
select created_time as date ,
sum(case appointment_status when 'Prescribed' then 1 else 0 end ) as Prescribed,
sum(case appointment_status when 'Arrived' then 1 else 0 end ) as Arrived
from appointments
group by created_time;