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