SQLite中的DISTINCT子句

gri*_*yvp 7 sqlite

最近我发现SQLite不支持DISTINCT ON()看似postgresql特定的子句.对于exeample,如果我有表t的列ab.我想选择所有不同的项目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)


OMG*_*ies 9

使用:

  SELECT MIN(t.a) AS A,
         t.b
    FROM TABLE t
GROUP BY t.b
Run Code Online (Sandbox Code Playgroud)