我正在尝试计算数据库中行数为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的行数,并且该名称仅在数据库中出现一次。所以Person 2会被忽略,因为它出现两次,而num行应该是1,因为只有1次是总数50而且名字只出现一次
答案 0 :(得分:1)
试试这个......
select name, gross
from daysheet d1
where gross = 50
and 1 in (select count(name)
from daysheet d2
where d2.name = d1.name)
答案 1 :(得分:0)
SELECT name,
gross
FROM daysheet
GROUP BY name, gross
HAVING Count(name) = 1
应该没问题
答案 2 :(得分:0)
这对你有用。
SELECT name, gross FROM daysheet WHERE gross='50' and name in
(SELECT name FROM daysheet GROUP BY name HAVING count(name)=1)