私は株価データを処理しており、このクエリを実行して、たとえばGoogleの月額1つの価格を取得しています(平日の価格の表から)。
SELECT * FROM pricedata WHERE symbol='GOOG' GROUP BY symbol,month(date),year(date)
2012-07-02
2012-06-01
2012-05-01
WHERE句を削除すると、次のように、最初の日付ではなく、その月の最後の日付が返されます(もちろん、テーブル内のすべての記号が表示されるため、さらに多くの行が返されます)。
SELECT * FROM pricedata GROUP BY symbol,month(date),year(date)
2012-07-31
2012-06-29
2012-05-31
「サーバーは各グループから任意の値を自由に選択できる」ことを理解しているので、最初のクエリが希望どおりに機能するのは幸運なことですが、変更が発生する理由を知りたいと思います。
毎月の最初の値を一貫して取得するための高速なソリューションはありますか?同様の質問は見つかりませんでしたが、そこにある可能性があります... 2番目のクエリは重要ではありませんが、月次のみのレコード用に縮小サイズのテーブルを作成しようとして、この問題が発生しました。