DISTINCT clause in SQLite
Recently i found that SQLite don't support DISTINCT ON()
clause that seems postgresql-specific. For exeample, if i have table t
with columns a
and b
. And i want to select all items with distinct b
. Is the following query the only one and correct way to do so 开发者_Python百科in SQLite?
select * from t where b in (select distinct b from t)
Sample data:
a | b
__|__
1 5
2 5
3 6
4 6
What i expect in return:
a | b
__|__
1 5
3 6
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)
Use:
SELECT MIN(t.a) AS A,
t.b
FROM TABLE t
GROUP BY t.b
精彩评论