gpt4 book ai didi

SQL 使用 GROUP BY、HAVING COUNT 选择包含空字段的行

转载 作者:行者123 更新时间:2023-12-04 23:43:09 24 4
gpt4 key购买 nike

我正在尝试做的与 Select first row in each GROUP BY group? 非常相似

但除了选择 ORDER BY number DESC 之后的第一行之外,我想选择在数据库中多次显示的行(过去更改过名称)和 Change_Name_to 下的空字段。

例如,我有一个显示人名更改历史和当前姓名的表格。

+--------+--------------+----------------+
| UserID | Current_Name | Change_Name_to |
+--------+--------------+----------------+
| 30 | Name3 | |
| 30 | Name2 | Name3 |
| 30 | Name1 | Name2 |
| 10 | Name5 | |
| 20 | Name7 | |
| 20 | Name6 | Name7 |
+--------+--------------+----------------+

我想在这里做的是

+--------+--------------+----------------+
| UserID | Current_Name | Change_Name_to |
+--------+--------------+----------------+
| 30 | Name3 | |
| 20 | Name7 | |
+--------+--------------+----------------+

我应该怎么做?

SELECT *, COUNT(*) FROM `docs` GROUP BY id HAVING COUNT(UserID) > 1

我知道这行不通,但我想做这样的事情。

最佳答案

我认为你可以做你想做的事情:

select d.*
from docs d
where d.change_name_to is null and
exists (select 1
from docs d2
where d2.userid = d.userid and d2.change_name_to is not null
);

关于SQL 使用 GROUP BY、HAVING COUNT 选择包含空字段的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51714061/

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