Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL忽略列多次出现的查询结果_Mysql - Fatal编程技术网

MySQL忽略列多次出现的查询结果

MySQL忽略列多次出现的查询结果,mysql,Mysql,我试图计算数据库中的行数,其中总行数为50,名称只出现一次。这是我的疑问,我确信这是可行的 SELECT name, gross FROM daysheet WHERE gross = '50' GROUP BY name HAVING Count(name) = 1 然而,这似乎并不像我想象的那样有效 GROSS NAME 50 Person 1 50 Person 2 705 Person 2 以上是该表的一个示例。我

我试图计算数据库中的行数,其中总行数为50,名称只出现一次。这是我的疑问,我确信这是可行的

SELECT name,
       gross
FROM   daysheet
WHERE  gross = '50'
GROUP  BY name
HAVING Count(name) = 1  
然而,这似乎并不像我想象的那样有效

GROSS      NAME
 50      Person 1
 50      Person 2
 705     Person 2
以上是该表的一个示例。我希望我的查询返回1行,因为50在名称完全唯一的情况下出现1次,而上面的查询为此返回2

我也尝试过使用DISTINCT,但它总是返回2

我哪里出错了

谢谢

澄清:我试图检索总行数为50且名称在数据库中仅出现1次的行数。因此,Person 2将被忽略,因为它出现了两次,num行应该是1,因为只有一次总数为50,而名称只出现了一次

SELECT name,
       gross
FROM   daysheet
GROUP  BY name, gross
HAVING Count(name) = 1

应该没问题

这应该对你有用

SELECT name, gross FROM daysheet WHERE gross='50' and name in 
(SELECT name FROM daysheet GROUP BY name HAVING count(name)=1)
试试这个

select name, gross
from   daysheet d1
where  gross = 50
and    1 in (select count(name)
             from daysheet d2
             where d2.name = d1.name)

您使用了
选择不同的名称
?如果没有,您将
DISTINCT
?@AmazingDreams
“从daysheet中选择DISTINCT name,gross,其中gross='50'
仍在返回2请让我澄清一下:您希望每个人只需要一条记录,或者只需要记录,其中人不会重复?换句话说,你应该得到“50人1”?@DavidJashi,其中只有一个人不是repeated@robz228还是拿不到。你能用你想要的记录更新问题吗?显然我需要了解更多!我从没想过这一点。非常感谢:D