如果我有一张像
这样的表格task_id | state
--------+------------
1 | NULL
--------+------------
1 | RESOLVED
--------+------------
2 | NULL
--------+------------
2 | NULL
如何通过task_id获取分组行,哪个状态仅为NULL。在这种情况下,只有task_id为2的行。
答案 0 :(得分:3)
执行GROUP BY
,使用HAVING
返回仅具有空状态的task_id。
select task_id
from tablename
group by task_id
having max(state) is null
答案 1 :(得分:2)
试试这个 -
SELECT task_id
FROM YOUR_TABLE
WHERE state NOT IN (SELECT task_id
FROM YOUR_TABLE
WHERE task_id IS NOT NULL)
答案 2 :(得分:1)
这是我的方法:
Select * from yourTable where state is null and task_id not in
(select task_id from yourTable y where state is not null )
答案 3 :(得分:0)
如果指定了特定列,COUNT
函数会忽略NULL
,您可以使用group by
,count
和having
,如下所示。
SELECT task_id
FROM t1
GROUP BY task_id
HAVING count(STATE) = 0;
<强> DEMO 强>