回答

收藏

使用多个总和优化查询?

技术问答 技术问答 245 人阅读 | 0 人回复 | 2023-09-12

我有表products:
5 H6 u/ |8 o5 V. G    ---------- ----------- ---------- --------- |family_id |shopper_id |product_id|quantity | ---------- ----------- ---------- --------- |A         |1                                                                                                                                                                                                                                                                                                                                                                              |Kit Kat   |      ||A         |1                                                                                                                                                                                                                                                                                                                                                                              |Kit Kat   |5         ||A         |1                                                                                                                                                                                                                                                                                                                                                                              |Snickers  |9        ||A         |2                       |Kit Kat   |7         ||B         |3  3                                                                                                                                                                                                                                                                                                                               |Kit Kat   |2          | ---------- ----------  ---------- --------- 对于每个产品,我想计算两个总计:
9 Z- ~" G. |8 B2 O7 `$ e每个购物者的总数2 ^' G8 H  g- b  E8 s/ h
每个家庭的总数。同一家庭所有购物者总数之和。
最终表如下:4 P: r0 Q, d  E; J, Y
    ---------- ---------- ------------------------- ----------------------- |shopper_id|product_id|total_quantity_shopper   |total_quantity_family  | ---------- ---------- ------------------------- ----------------------- |1                                       |Kit Kat   |                                                                                                                                                                                                                                                                                                                                                                              | 2222                                                             ||1                                       |Snickers  |                    |                 ||2                |Kit Kat   |                                       | 2222                                                             ||3 3                                                                                                                                                                                                                                                                        |Kit Kat   | 2                              | 2                            | ---------- ---------- -------------------------|-----------------------|这是我的查询:& O1 l" G& T9 g: ]
SELECT    distinct shopper_id,   product_id,   sum(quantity) OVER (PARTITION BY shopper_id,product_id) as total_quantity_shopper,   sum(quantity) OVER (PARTITION BY family_id,product_id) as total_quantity_familyFROM    products;但从查询计划来看,它看起来效率很低(我认为)。如何改进上述查询?
7 |  D! F; ~+ e2 w7 K9 Q- Y                                                               
" {) w/ O0 F# K# r    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则