Mysql 如何选择只有空值的分组行?

Mysql 如何选择只有空值的分组行?,mysql,sql,group-by,Mysql,Sql,Group By,如果我有一张像这样的桌子 task_id | state --------+------------ 1 | NULL --------+------------ 1 | RESOLVED --------+------------ 2 | NULL --------+------------ 2 | NULL 如何通过状态仅为NULL的task_id获取分组行。在这种情况下,只有任务id为2的行。以下是我的方法: Select

如果我有一张像这样的桌子

task_id | state
--------+------------ 
   1    |  NULL
--------+------------
   1    |  RESOLVED
--------+------------
   2    |  NULL
--------+------------
   2    |  NULL
如何通过状态仅为NULL的task_id获取分组行。在这种情况下,只有任务id为2的行。

以下是我的方法:

    Select  * from yourTable where state is null and task_id not in 
    (select task_id from yourTable y where state is not null )
我的做法如下:

    Select  * from yourTable where state is null and task_id not in 
    (select task_id from yourTable y where state is not null )
试试这个-

SELECT task_id
FROM YOUR_TABLE
WHERE state NOT IN (SELECT task_id
                    FROM YOUR_TABLE
                    WHERE task_id IS NOT NULL)
试试这个-

SELECT task_id
FROM YOUR_TABLE
WHERE state NOT IN (SELECT task_id
                    FROM YOUR_TABLE
                    WHERE task_id IS NOT NULL)
使用必须返回只有空状态的任务\u id来执行分组

select task_id
from tablename
group by task_id
having max(state) is null
使用必须返回只有空状态的任务\u id来执行分组

select task_id
from tablename
group by task_id
having max(state) is null
由于计数函数在指定特定列的情况下忽略NULL,所以可以使用group by、COUNT和having,如下所示

SELECT task_id
FROM t1
GROUP BY task_id
HAVING count(STATE) = 0;
由于计数函数在指定特定列的情况下忽略NULL,所以可以使用group by、COUNT和having,如下所示

SELECT task_id
FROM t1
GROUP BY task_id
HAVING count(STATE) = 0;

你想要的是任务id 2,还是任务id=2的两行?如果我通过任务id写摸索的行,你会怎么想?我想摸索很重要,你想要的是任务id 2,或者task_id=2的两行?如果我通过task_id编写摸索行,你会怎么想?我想groping的thikI认为这不会只返回task_id=2有没有办法将其重写为Join而不是subselect?纯代码的答案在Stackoverflow上价值很低,因为它们对未来数千名研究人员的教育/授权作用微乎其微。我认为这不会只返回task_id=2有没有办法将其重写为Join而不是subselect?纯代码答案在Stackoverflow上的价值很低,因为它们对未来数千名研究人员的教育/授权作用微乎其微。有没有办法将其重写为Join而不是subselect?纯代码答案在Stackoverflow上的价值很低,因为它们确实如此对未来数千名研究人员的教育/授权微乎其微。是否有办法将其重写为联接而不是子选择?仅代码的答案在Stackoverflow上的价值很低,因为它们对未来数千名研究人员的教育/授权微乎其微。