Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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
SQL:选择至少有一行具有特定值的不同“类别”_Sql_Sqlite_Distinct - Fatal编程技术网

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

SQL:选择至少有一行具有特定值的不同“类别”,sql,sqlite,distinct,Sql,Sqlite,Distinct,我有这样一个简单的表: +----------+----------+ | Category | Favorite | +----------+----------+ | One | True | | One | False | | Two | False | | Three | True | | Four | False | +----------+----------+ +----------+ | Catego

我有这样一个简单的表:

+----------+----------+
| Category | Favorite |
+----------+----------+
| One      |    True  |
| One      | False    |
| Two      | False    |
| Three    | True     |
| Four     | False    |
+----------+----------+
+----------+
| Category |
+----------+
| One      |
| Three    |
+----------+
我想选择每个类别,但每个类别只选择一次,至少有一行Favorite=True

此查询仅返回每个类别,而不仅仅是那些至少有一个收藏夹的类别

我不是很擅长SQL,我也不知道到底要搜索什么,这就是为什么我没有找到关于这个的任何东西。任何帮助都将不胜感激

编辑:

输出应如下所示:

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

简单的分组应该可以做到这一点:

Select category from the_table 
where favorite = 1
group by category

简单的分组应该可以做到这一点:

Select category from the_table 
where favorite = 1
group by category

以下内容也应适用于MSSQL服务器:

如果最喜欢的列是varchar:

如果收藏夹列为位:


以下内容也应适用于MSSQL服务器:

如果最喜欢的列是varchar:

如果收藏夹列为位:


我用SQLite做Android我用SQLite做Android这是最接近你尝试的,我想这是最好的答案!最简单的一个好的,谢谢!不知道会这么容易。因为SQLite,我不得不将where Favorite='True'更改为where Favorite=1。是的,这取决于数据的存储方式,因为varchar将为'True',因为bit将为1/0这是最接近您尝试的结果,我认为这是最好的答案!最简单的一个好的,谢谢!不知道会这么容易。因为SQLite,我不得不将where Favorite='True'更改为where Favorite=1。是的,这取决于数据的存储方式,因为varchar将是'True',因为bit将是1/0