计数(booking_id) 0 30
我正在做一个查询,显示新客户注册。其中一列必须显示他们所做的预订数量。有些没有预订。计数预订的唯一方法是count(booking_id)
,而booking_id
仅在进行预订时生成,因此我无法插入值0
,并且那些至少没有进行预订的人被排除在列表之外。
下面是我的查询的简化版本:
SELECT sign_up_date, client, count(booking_id_)
from client_table
group by 1, 2
这些是我想要的结果:
由于问题模棱两可,删除了前面的答案。如您所确认的表,问题将通过以下解决方案解决:
您需要执行left join
以在客户端没有预订的相应预订条目中获取所有client
条目以及null
-s。然后一个简单的group by
就可以完成你的工作了。
SELECT c.sign_up_date, c.client, count(b.booking_id_) as booking_count
from client c
left join booking b on b.client_id = c.client_id
group by 1, 2;
这就是你想要的:
sign_up_date | client | booking_count | 5-12-2021 | 客户端1 | 0 |
---|---|---|
6-12-2021 | 客户端2 | 3 |
7-12-2021 | 客户端3 | 2 |
8-12-2021 | 客户4 | 0 |