我有下表,其中包含 MySQL 中的 purchase_id
、product_group
和 flag
列。每当进行购买时,都会创建一个 purchase_id
并且购买可以在任何产品组中,它可以是成功也可以是失败,因此 flag
'Y' 或 '不。
我必须找到每个 product_group
的失败购买次数,计算公式为
failed_count = total_purchase - failed_flag
即
count_failure = count(purchase_id) - count(flag) where flag = 'N'
这里我必须按 product_group
分组并找到答案:
purchase_id | product_group | flag
------------+---------------+-----
1 | A | Y
2 | A | Y
4 | B | N
7 | B | N
11 | C | Y
34 | D | N
当我尝试基于组进行计算时,出现错误,因为子查询返回超过 1 行。
谁能帮忙?
最佳答案
这听起来像是一个基本的聚合查询:
select product_group, sum(flag <> 'N') as num_failed
from t
group by product_group;
如果flag
可以是NULL
使用 sum(not flag <=> 'N')
.
关于mysql - 如何通过聚合和标志来编写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57101216/