如果我有一個像如何選擇只有NULL值的分組行?
task_id | state
--------+------------
1 | NULL
--------+------------
1 | RESOLVED
--------+------------
2 | NULL
--------+------------
2 | NULL
表我怎樣才能通過TASK_ID哪個狀態是唯一NULL分組的行。在這種情況下,只有與TASK_ID 2.
如果我有一個像如何選擇只有NULL值的分組行?
task_id | state
--------+------------
1 | NULL
--------+------------
1 | RESOLVED
--------+------------
2 | NULL
--------+------------
2 | NULL
表我怎樣才能通過TASK_ID哪個狀態是唯一NULL分組的行。在這種情況下,只有與TASK_ID 2.
做一個GROUP BY
,使用HAVING
返回TASK_ID只有空的狀態。
select task_id
from tablename
group by task_id
having max(state) is null
它的工作原理,但使用max()與NULL值是否正確? –
@カamo:絕對...... – zarruq
這裏行是我的方法:
Select * from yourTable where state is null and task_id not in
(select task_id from yourTable y where state is not null)
我認爲這不會只返回task_id = 2 –
它適用於我! –
有沒有辦法重寫它來加入而不是子選擇? –
試試這個 -
SELECT task_id
FROM YOUR_TABLE
WHERE state NOT IN (SELECT task_id
FROM YOUR_TABLE
WHERE task_id IS NOT NULL)
有沒有辦法重寫它來加入而不是子選擇? –
由於COUNT
函數忽略NULL
的情況下,一個特定的列分配,則可以使用group by
,count
和having
如下。
SELECT task_id
FROM t1
GROUP BY task_id
HAVING count(STATE) = 0;
你想只是TASK_ID 2,或兩列TASK_ID = 2? – jarlh
如果我通過task_id寫了一些行,你會怎樣? –
我認爲摸索的thik – Strawberry