【发布时间】:2021-04-19 13:58:44
【问题描述】:
我想运行一个查询,该查询将在给定日期按客户 ID 对给定发票编号开具发票的项目数进行计数。每张发票最多可以有 10 个项目的发票。我想知道传播是什么。发票订单中包含的 10 个项目的全部计数的次数,然后是单个发票上只有 9、8、7、6、5、4、3、2 和 1 个项目的后续总数对于给定的客户。
我的数据如下所示(客户发票表)
Order Date MMDDYYYY | Customer Id | Invc Num | Item Sku
04/01/2021 1 01 11111
04/01/2021 2 02 11112
04/01/2021 2 03 11113
04/01/2021 2 04 11111
04/02/2021 3 05 11112
04/02/2021 3 05 11113
04/02/2021 3 05 11114
04/02/2021 3 06 11115
04/03/2021 3 07 11117
04/03/2021 3 07 11118
04/03/2021 4 08 11114
04/03/2021 4 09 11120
04/03/2021 4 09 11121
04/03/2021 4 09 11122
04/03/2021 4 09 11123
04/03/2021 4 09 11124
04/03/2021 4 09 11125
04/03/2021 4 09 11126
04/03/2021 4 09 11127
04/03/2021 4 09 11128
04/03/2021 4 09 11129
预期结果:
Order Date MMDDYYYY | Customer Id | Bucket 1 | Bucket 2 | Bucket 3 | Bucket 4 | Bucket 5 | Bucket 6 | Bucket 7 | Bucket 8 | Bucket 9 | Bucket 10 | Total Items Ordered
04/01/2021 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1
04/01/2021 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3
04/02/2021 | 3 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4
04/03/2021 | 3 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2
04/03/2021 | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 11
到目前为止,我的 SQL 如下所示: 选择 order_date、customer_id、invc_num、count(invc_num) 来自 customer_invoice_table 按 order_date、customer_id、invc_num 分组
当然,这只会给我订购的总物品数。我无法弄清楚如何获得各个桶。我可以通过计算单个 invc_num 在给定日期为同一客户出现的次数,在电子表格中手动执行此操作,但我无法弄清楚如何将其公式化为 sql 语句以给我分组在每个中的总订单桶。
对此有什么想法吗?
【问题讨论】:
-
标记您的问题以指示 RDBMS。
-
您需要将每张发票中的项目作为内部集进行计数,然后将计数的项目作为外部集旋转到存储桶中。