首页 > 解决方案 > 选择具有相同 id 但在另一列中的所有空值的行并按相同 id 分组

问题描述

我只想获取特定用户名列的值为 NULL 的行。

那么它应该在输出中被忽略。

但是,如果在输出中应考虑相同用户名的所有行和空值。

下面是示例示例和输出。如何使用 sql 查询来完成?

+----------+------------+
| username | id_group   |
+----------+------------+
| A        |    5       |
| A        |    7       |
| A        |    8       |
| B        |    12      |
| B        |   null     |
| C        |   null     |
| C        |    5       |
| D        |   null     |
| D        |   null     |
+----------+------------+

输出

+----------+------------+
| username | id_group   |
+----------+------------+
| D        |   null     |
+----------+------------+

sqlfiddle

标签: mysql

解决方案


这应该没问题,您需要对所有数据进行分组并过滤每个组。这就是我对HAVING条款所做的:

SELECT username, MAX(id_group) AS id_group
FROM T
GROUP BY username
HAVING MAX(id_group) IS NULL

分贝小提琴

sqlfiddle


推荐阅读