我有一个运行 sqlite 3.7.16.2 的开发环境和一个运行 sqlite 3.7.9 的生产环境,我遇到了一些意想不到的向后不兼容问题。
我有一个看起来像这样的表:
sqlite> select * from calls;
ID|calldate|calltype
1|2013-10-01|monthly
1|2013-11-01|3 month
1|2013-12-01|monthly
2|2013-07-11|monthly
2|2013-08-11|monthly
2|2013-09-11|3 month
2|2013-10-11|monthly
2|2013-11-11|monthly
3|2013-04-22|monthly
3|2013-05-22|monthly
3|2013-06-22|3 month
3|2013-07-22|monthly
4|2013-10-04|monthly
4|2013-11-04|3 month
4|2013-12-04|monthly
5|2013-10-28|monthly
5|2013-11-28|monthly
使用较新版本的 sqlite (3.7.16.2) 我可以使用它:
SELECT ID, MIN(calldate), calltype FROM calls WHERE calldate > date('NOW') GROUP BY ID;
这给了我:
ID|MIN(calldate)|calltype
1|2013-11-01|3 month
2|2013-11-11|monthly
4|2013-11-04|3 month
5|2013-10-28|monthly
但是,当我在旧版本的 sqlite (3.7.9) 上运行相同的代码时,我得到了这个:
ID|MIN(calldate)|calltype
1|2013-11-01|monthly
2|2013-11-11|monthly
4|2013-11-04|monthly
5|2013-10-28|monthly
我查看了此处的更改,但无法弄清楚为什么仍然会发生这种情况。有关如何解决此问题或如何重写我的查询的任何建议?