gpt4 book ai didi

MySQL 聚合报告

转载 作者:行者123 更新时间:2023-11-29 07:47:16 25 4
gpt4 key购买 nike

我正在尝试构建一个将返回聚合销售数据的查询。我当前的查询返回一个与此类似的表:

----------------------------------
| DATE | SKU | TOTAL |
----------------------------------
| 2014-11-10 | AV155_A | 209.00 |
| 2014-11-10 | AV155_B | 627.00 |
| 2014-11-10 | AV155_C | 279.00 |
| 2014-11-10 | AV155 | 279.00 |
| 2014-11-10 | AV1556_A | 209.00 |
| 2014-11-10 | AV1556_B | 627.00 |
| 2014-11-10 | AV1556_C | 279.00 |
| 2014-11-10 | AV1556 | 279.00 |

但是,我想要一个将每个 SKU 与相同“父 SKU”相匹配的汇总总数,而不是每个单独 SKU 的总计。在此示例中,我想要两个结果,一个汇总“AV1555”的总数,一个汇总“AV1556”的总数。该表应如下所示:

-----------------------------------
| DATE | SKU | TOTAL |
-----------------------------------
| 2014-11-10 | AV1555 | 1394.00 |
| 2014-11-10 | AV1556 | 1394.00 |

我当前使用的查询如下所示:

select
DATE_FORMAT(created_on, '%m-%d-%Y') as date,
sku,
SUM(price) as total
FROM order_items
WHERE created_on between FROM_UNIXTIME(1415577600) AND NOW()
GROUP BY MONTH(created_on), DAY(v.created_on), order_item_sku;

最佳答案

我认为你想要的是substring_index():

select DATE_FORMAT(created_on, '%m-%d-%Y') as date,
substring_index(sku, '_', 1) as sku_prefix
SUM(price) as total
FROM order_items
WHERE created_on between FROM_UNIXTIME(1415577600) AND NOW()
GROUP BY date(v.created_on), substring_index(sku, '_', 1);

您还应该在分组依据中包含年份(这是通过包含整个日期来完成的)。今天可能不需要它,但三四个星期后它可能会被证明是有用的。

关于MySQL 聚合报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27413571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com