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
ここで変更を調べましたが、なぜこれがまだ起こっているのかわかりませんでした。これを回避する方法またはクエリを書き直す方法について何か提案はありますか?