SQL:选择具有至少一行具有特定值的不同“类别”

时间:2017-06-29 15:14:00

标签: sql sqlite distinct

我有一个这样的简单表:

+----------+----------+
| Category | Favorite |
+----------+----------+
| One      |    True  |
| One      | False    |
| Two      | False    |
| Three    | True     |
| Four     | False    |
+----------+----------+

我想选择每个类别,但每个类别只选择一次,其中至少有一行Favorite = True

SELECT DISTINCT category FROM table_name;

此查询仅返回每个类别,而不仅仅包含至少一个收藏夹。

我不擅长SQL,我真的不知道要搜索什么,这就是为什么我没有找到任何关于这个的原因。任何帮助都会非常感激!

修改

输出应如下所示:

+----------+
| Category |
+----------+
| One      |
| Three    |
+----------+

2 个答案:

答案 0 :(得分:3)

下面应该也可以使用(MSSQL服务器):

  

如果收藏列是varchar:

SELECT DISTINCT category 
FROM table_name
WHERE Favourite = 'True'
  

如果收藏列是位:

SELECT DISTINCT category 
FROM table_name
WHERE Favourite = 1

答案 1 :(得分:2)

简单的分组应该可以解决问题:

Select category from the_table 
where favorite = 1
group by category