gpt4 book ai didi

mysql - SQL 在表中划分子查询

转载 作者:行者123 更新时间:2023-11-29 07:34:17 27 4
gpt4 key购买 nike

这可能已经得到解答,但我找不到任何可以指引我正确方向的内容。我将不胜感激任何帮助。

我正在使用一个名为 order_items 的表,它看起来像这样:

+----------------------------------------+
| id order_id status |
+----------------------------------------+
| 2014001 1 complete |
| 2014002 1 canceled |
| 2014003 3 complete |
| 2014004 4 canceled |
| 2014005 1 canceled |
| 2014006 1 complete |
| 2014007 2 canceled |
| 2014008 3 complete |
+----------------------------------------+

order_items.id 是主键。我想编写一个查询来查找每个 order_id 中具有 complete 状态的 order_items 的百分比所以结果应该是这样的:

+----------------------------+
| Percentage order_id |
+----------------------------+
| .5 1 |
| 0 2 |
| 1 3 |
| 0 4 |
+----------------------------+

这是我正在尝试的代码,但它不起作用

select  
order_items.order_id ,
(select count(order_items.status) from order_items where order_items.status='complete')/ count(order_items.status)
from order_items
GROUP BY order_items.order_id

最佳答案

最简单的方法是使用条件聚合:

select oi.order_id, avg(oi.status = 'complete')
from order_items oi
group by oi.order_id;

oi.status 返回 true,在数字上下文中将其视为 1。所有行的平均值就是您要查找的内容。

关于mysql - SQL 在表中划分子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31437547/

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