gpt4 book ai didi

MySQL select - 按组获取计数

转载 作者:行者123 更新时间:2023-11-29 22:08:13 25 4
gpt4 key购买 nike

我有两个表连接并分组,一个是订单,另一个是项目。
我想要得到的是我们在x期间的订单数量。

所以我最初的想法是首先计算数据集中每个订单出现的次数,然后将每一行除以上述数字,例如订单 ID 1 出现 3 次,因此计数将为 0.33,* 3 = 1 订单。

但是我在第一步中遇到了麻烦,无法获得正确的 order.id 出现次数。

我希望展示的是这样的:

+-------+---------+------+
|order |item |count |
|number | | |
+-------+---------+------+
| 1 | ABC | 3 |
+-------+---------+------+
| 1 | DEF | 3 |
+-------+---------+------+
| 1 | GHI | 3 |
+-------+---------+------+
| 2 | ABC | 2 |
+-------+---------+------+
| 2 | DEF | 2 |
+-------+---------+------+
| 3 | ABC | 1 |
+-------+---------+------+

但我只是得到这样的结果:

+-------+---------+------+
|order |item |count |
|number | | |
+-------+---------+------+
| 1 | ABC | 1 |
+-------+---------+------+
| 1 | DEF | 1 |
+-------+---------+------+
| 1 | GHI | 1 |
+-------+---------+------+
| 2 | ABC | 1 |
+-------+---------+------+
| 2 | DEF | 1 |
+-------+---------+------+
| 3 | ABC | 1 |
+-------+---------+------+

这是我的查询:

SELECT 
`orders`.`id` as 'order number',
`item`.`item`,
COUNT(`orders`.`id`) as ' count'
FROM `db`.`orders`
LEFT JOIN `item` ON `item`.`order_id` = `order`.`order_id`
GROUP BY `orders`.`id`, `item`.`item`
;

如何?

最佳答案

您的查询应该是-

SELECT 
`item`.`item`,
COUNT(`orders`.`id`) as 'count'
FROM `db`.`orders`
JOIN `item` ON `item`.`order_id` = `order`.`order_id`
GROUP BY `item`.`item`;

我认为您不需要多次使用相同的项目行,因为您正在尝试获取项目明智的计数。

更新:您可以通过此获得您想要的结果

SELECT t1.order_id, t2.item, t1.cnt FROM 
(
SELECT o.order_id,COUNT(i.items) cnt FROM
item i
JOIN orders o ON o.order_id=i.order_id
group by o.order_id
) t1
JOIN
item t2 ON t1.order_id=t2.order_id;

关于MySQL select - 按组获取计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31956255/

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