最近我发现SQLite不支持DISTINCT ON()
看似postgresql特定的子句.对于exeample,如果我有表t
的列a
和b
.我想选择所有不同的项目b
.以下查询是SQLite中唯一一个正确的方法吗?
select * from t where b in (select distinct b from t)
Run Code Online (Sandbox Code Playgroud)
样本数据:
a | b
__|__
1 5
2 5
3 6
4 6
Run Code Online (Sandbox Code Playgroud)
我期待的回报:
a | b
__|__
1 5
3 6
Run Code Online (Sandbox Code Playgroud)
小智 11
sqlite> SELECT * FROM t GROUP BY b; 2|5 4|6 (for each b: one (unpredictable) value of a) sqlite> SELECT * FROM (SELECT * FROM t ORDER BY a DESC) GROUP BY b; 1|5 3|6 (for each b: the row with min a) sqlite> SELECT * FROM (SELECT * FROM t ORDER BY a ASC) GROUP BY b; 2|5 4|6 (for each b: the row with max a)