gpt4 book ai didi

MySQL 组按 : Only include rows with specific count of column

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

我想创建一个查询,计算包含 A 和 B 相同值的行数,但前提是任何给定 A 中 B 的出现次数 > 10。换句话说,如果有 11我的表中的行如下:

<小时/>
| id | A | B | ... |

| 1 | a | a | ... |

| 2 | a | a | ... |

| 3 | a | a | ... |

| 4 | a | a | ... |

| 5 | a | a | ... |

| 6 | a | a | ... |

| 7 | a | a | ... |

| 8 | a | a | ... |

| 9 | a | a | ... |

| 10 | a | a | ... |

| 11 | a | b | ... |
<小时/>

使用以下查询:

从 foos 组中选择 A、B、count(B),其中 A、B 具有 (?) order by count(B) desc;

我希望返回以下内容:

| a | a | 10 |
<小时/>

更新/编辑:我需要在这里检查另一个条件;对于上面给定的查询,我只想返回 GROUP_BY A, B 中的行。情况下,A 出现在超过 10 行返回的行中。例如:

| 1  | a | a |
| 2 | a | b |
| 3 | a | c |
| 4 | a | d |
| 5 | a | e |
| 6 | a | f |
| 7 | a | g |
| 8 | a | h |
| 9 | a | i |
| 10 | a | j |
| 11 | a | k |

最佳答案

只需在 having 子句中添加条件即可。

select A, B, count(B)
from foos
group by A, B
having count(B) > 10
order by count(B) desc;

说明:

此查询将沿着 A 和 B 相同的记录计数获取 A 和 B。如果计数大于 10,则仅显示那些结果。

在 SQL 中添加了 HAVING 子句,因为 WHERE 子句无法与聚合函数一起使用。

编辑:

如果你想按A和B分组,那么它不适用于更新后的表数据。在这种情况下,你必须这样做,

select A, count(B)
from foos
group by A
having count(B) > 10
order by count(B) desc

关于MySQL 组按 : Only include rows with specific count of column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682391/

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