在我的数据集中,月份以“June-21”、“Aug-21”这样的格式存储。
对于 Between 查询:选择 sum(downloads)
从收视率
其中“10 月 21 日”和“12 月 21 日”之间的月份;
它获取空值,而使用 IN 运算符可以给出完美的结果。
使用 IN 运算符查询:SELECT SUM(downloads) AS total_downloads 从收视率 WHERE 中的月份 ('October-21', 'November-21' , 'December-21')
为什么查询 between 不起作用?
那是因为
BETWEEN a AND B
表示大于等于a小于等于b.
“October”的“O”在 December 的“D”之后,因此两者之间没有任何内容。您正在比较字符串,而不是日期。另请参阅此测试:
SELECT
CASE
WHEN 'October-21' < 'December-21' THEN 'TRUE'
ELSE 'FALSE'
END AS string_comp_test
, CASE
WHEN DATE '2021-10-01' < DATE '2021-12-01' THEN 'TRUE'
ELSE 'FALSE'
END AS date_comp_test
;
string_comp_test | date_comp_test |
---|---|
假 | 真实 |