SQLite - 选择一列的 DISTINCT 并获取其他列
Posted
技术标签:
【中文标题】SQLite - 选择一列的 DISTINCT 并获取其他列【英文标题】:SQLite - SELECT DISTINCT of one column and get the others 【发布时间】:2013-06-21 01:24:43 【问题描述】:我有一张这样的表格(但有更多列):
Code Quantity
----- --------
00001 1
00002 1
00002 1
00002 2
00003 2
00003 1
我想得到与 SELECT DISTINCT Code FROM table
(00001,00002,00003) 相同的结果,但与所有其他表列相同。
更新:
如果我执行此操作:SELECT DISTINCT Code, Quantity from table
我明白了:
Code Quantity
----- --------
00001 1
00002 1
00002 2
00003 1
00003 2
我想得到:
Code Quantity
----- --------
00001 1
00002 1
00003 1
提前致谢!
【问题讨论】:
所有其他列的输出值应该是多少?因此,从您自己的示例来看,如果代码为 00003,那么数量应该是多少(2、1 或其他)? 那么...你想要最低的Quantity
,还是第一次出现?
【参考方案1】:
假设您使用的是 mysql(因为已标记问题),以下将为其他列返回任意值:
select *
from t
group by code;
但是,选择的特定值来自不确定的行。
【讨论】:
问题是针对 SQLite 的;不管怎样,答案都是一样的。【参考方案2】:根据 Gordon 的回答,您可以订购一个子查询,这样 group by 将始终返回每个代码的最低数量。
select *
from (select * from t order by code desc, quantity asc)
group by code;
【讨论】:
以上是关于SQLite - 选择一列的 DISTINCT 并获取其他列的主要内容,如果未能解决你的问题,请参考以下文章