简而言之,我有一个表格,其中包含时间戳列。我想获得最新(即最大值)时间戳的行。目前,我这样做:SQLite中WHERE子句中的聚合函数
SELECT * FROM table ORDER BY timestamp DESC LIMIT 1
但我宁愿做这样的事情:
SELECT * FROM table WHERE timestamp=max(timestamp)
然而,SQLite的拒绝此查询:
SQL error: misuse of aggregate function max()
的documentation证实了这一点行为(页面底部):
聚合函数只能在SELECT语句中使用。
我的问题是:是否有可能编写一个查询来获取具有最大时间戳的行而无需对select进行排序并将返回行数限制为1?这似乎应该是可能的,但我想我的SQL-fu并不适合。
工程很漂亮,谢谢。我知道这一定很简单。 – 2008-12-24 01:06:22
只是好奇,子查询是否会导致sqlite处理该表两次,或者被优化了吗? – 2008-12-24 02:30:58