gpt4 book ai didi

mysql - SQL SUM 具有活跃 child 的 parent 数量

转载 作者:行者123 更新时间:2023-11-29 12:12:51 24 4
gpt4 key购买 nike

'SUM(IF(children.status > 0, 1, 0)) AS count'

目前,我的 select 语句中包含上述代码,但它返回活跃 child 的数量,而不是拥有活跃 child 的 parent 数量。虽然我的数据很大一部分是单个 child 元素,但有些 parent 有大量 child ,这确实会搞乱计数。计算 child 状态高于 0 的 parent 数量的最佳方法是什么?

表格中的相关字段定义如下。

parent {
int id
}

children {
int id
int parent_id
int status
}

最佳答案

您需要一个 DISTINCT 来消除重复项。这是使用 CASE:

COUNT(DISTINCT CASE WHEN children.status > 0 THEN parent_id END)

您可能可以对 IF 执行相同的操作,但我更喜欢标准 SQL 的 CASE:

COUNT(DISTINCT IF(children.status > 0,parent_id, NULL))

关于mysql - SQL SUM 具有活跃 child 的 parent 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345199/

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