我有一张表t
,如下所示:
CREATE TABLE t(
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT,
a TEXT,
b TEXT
);
示例数据
1|2015-06-15|a1 15|b1 15
2|2015-06-15|a2 15|b2 15
3|2015-06-16|a1 16|b1 16
4|2015-06-16|a2 16|b2 16
5|2015-06-17|a1 17|b1 17
6|2015-06-17|a2 17|b2 17
我想为表格中的两个最新日期选择a
和b
的所有值。
我想做以下事情:
SELECT a,b FROM t WHERE date IN (SELECT DISTINCT date FROM t ORDER BY date DESC LIMIT 2);
预期输出
a1 17|b1 17
a2 17|b2 17
但您在嵌套查询中不允许ORDER BY
。如何在单个查询中完成此操作?
答案 0 :(得分:2)
改为使用join
:
SELECT a, b
FROM t JOIN
(SELECT DISTINCT date FROM t ORDER BY date DESC LIMIT 2) tt
on t.date = tt.date;
答案 1 :(得分:0)
尝试此查询
SELECT t.a,t.b FROM t
join(SELECT DISTINCT date FROM t ORDER BY date DESC LIMIT 2) q
on t.date=q.date