SQL select 只有具有相同列值的行

SQL select only rows which have same column value

我需要一些提示..我得到了一个 table,看起来像这样:

id  fruit   delicious
1   apple   1
2   apple   0
3   apple   1
4   cherry  1
5   cherry  1
6   cherry  1
7   banana  0
8   banana  0
9   banana  0

为此 table 我想创建一个语句,它只会 return 水果 完全美味但不是部分美味的水果。 在这个例子中,只有 "cherry" 应该被 returned。

目前我刚收到这个声明:

SELECT * FROM fruits WHERE delicious <> 0

但这也会 return 苹果和香蕉。

我有点不知道如何存档并期待一些提示。

编辑:非常感谢您的回复。不幸的是,标志 "delicious" 是一个字符而不是整数

fruit 分组,只取具有 delicious = 0

零记录的那些
SELECT fruit 
FROM fruits 
GROUP BY fruit
HAVING sum(case when delicious = 0 then 1 else 0 end) = 0

这不是最好的方法,但可以在很多情况下使用。

SELECT DISTINCT fruit 
FROM fruits 
WHERE NOT fruit IN (
  SELECT DISTINCT fruit 
  FROM fruits 
  WHERE delicious = 0
);

这也有效

SELECT fruit, sum(delicious) AS TotalScore, count(fruit) AS TotalFruits
FROM ForgeRock
GROUP BY fruit
HAVING TotalScore = TotalFruits

只需寻找最小美味值为 1 的那些

SELECT Id, Fruit FROM fruits
GROUP BY Id, Fruit
HAVING min(delicious) = 1