问题:对于下列order表,求每个顾客每天买了多少个商品?
order_date | product_id | customer_id | number |
---|---|---|---|
2020-11-25 | 7 | 1 | 1 |
2020-11-25 | 12 | 1 | 3 |
2020-11-26 | 53 | 1 | 2 |
2020-11-26 | 1 | 2 | 4 |
2020-11-26 | 3 | 2 | 1 |
2020-11-26 | 16 | 2 | 7 |
2020-11-26 | 3 | 3 | 2 |
2020-11-27 | 6 | 3 | 1 |
分析:对 (customer_id, order_date)分组,每组值都是一个独立的分组,当这个组合里的任一个值为null时,都是一个独立的分组,比如 (1, null)、(null,2020-11-25)、(null,null)都是独立分组
select sum(number) as day_buy_number
from order
group by customer_id, order_date
对 (customer_id, order_date)分组后的同一组结果具有相同的背景色
结果是:
order_date | customer_id | products_number |
---|---|---|
2020-11-26 | 3 | 2 |
2020-11-27 | 3 | 1 |
2020-11-26 | 2 | 12 |
2020-11-25 | 1 | 4 |
2020-11-26 | 1 | 2 |
注意:select列中使用聚集函数时,会忽略值为null的记录,比如对 number列使用 sum函数,当有值 1、2、null时,1、2被统计,null被忽略