我需要制作一个类似于以下的表格,该表格可以让我分配单个客户ID所下的订单数量
no_of_orders count_of_customer_id
1 537
2 845
3 193
4 80
... ...
该如何在不手动打印查询中的no_of_orders(1、2、3、4、5 ...)的情况下做到这一点,正如我所希望的那样,会有每天产生数百个订单的异常值。我将为此使用BigQuery。
我要查询的daily_order表具有列 order_payment (现金,信用等),服务类型(A,B,C等),< strong> customer_id (每个客户的唯一价值)和 order_time (例如,UTC时间2018-04-06 15:06:26)。看起来像这样:
order payment service_type customer_id order_time
CASH A 58128 2018-04-06 15:06:26 UTC
CREDIT B 58256 2018-04-06 15:08:34 UTC
答案 0 :(得分:2)
首先,通过将customer_id分组,使用选择查询来检索每个客户的no_of_order,然后使用另一个查询将每个计数分组。
select no_of_orders, count(*) as count_of_customer_id
from(
select count(*) as no_of_orders
from daily_order
group by customer_id
)
group by no_of_orders
order by no_of_orders;