我有一个按日期分区的表,格式为 yyyyMMdd。如果我做一个这样的简单查询:
SELECT COUNT(*) FROM MyTable WHERE Date >= '20140924'
然后它将扫描3天的数据(今天是26号)。但是我希望我的查询总是查看过去 3 天,所以我这样写
SELECT COUNT(*) FROM MyTable
WHERE date >= from_unixtime(unix_timestamp() - 259200, 'yyyyMMdd')
问题是现在它扫描每个分区。有没有办法让它预先计算大于之后的查询部分?