yyyyMMdd 形式の日付で分割されたテーブルがあります。次のような単純なクエリを実行すると:
SELECT COUNT(*) FROM MyTable WHERE Date >= '20140924'
次に、3 日分のデータをスキャンします (今日は 26 日です)。ただし、クエリで常に過去 3 日間を参照するようにしたいので、次のように記述します。
SELECT COUNT(*) FROM MyTable
WHERE date >= from_unixtime(unix_timestamp() - 259200, 'yyyyMMdd')
問題は、すべてのパーティションをスキャンするようになったことです。大なりの後のクエリの部分を事前に計算する方法はありますか?