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

标签 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    |
+----------+

最佳答案

下面应该也可以正常工作(MSSQL服务器):


如果“收藏夹”列是varchar:


SELECT DISTINCT category 
FROM table_name
WHERE Favourite = 'True'



如果收藏夹栏位:


SELECT DISTINCT category 
FROM table_name
WHERE Favourite = 1

关于sql - SQL:选择至少一行具有特定值的不同“类别”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44829009/

相关文章:

java - SQLiteDatabase 添加日期到数据库

mysql - 如何在我的数据库中用 SPACE 替换 "+"(加号)?

mysql - SQL获取不同的名字和姓氏

elasticsearch - Elasticsearch返回不同的结果

php - 以这种特定方式对我的数据库进行非规范化会有助于提高性能吗?

sql - MySQL:左连接与右连接的联合

c# - SQLite.Net - 不知道 System.Collections.Generic.List 错误 - Xamarin Android

MySQL 按行分组

php - 正确编写查询 php pdo

mysql - MySQL 中的 SQL 不同