我想执行一个查询,该查询计算按商店在open_date的60天内关闭日期的行数。
样本:表A
Store Open Date Close Date
A 2017-01-01 2017-01-31
B 2017-02-02 Null
A 2017-01-02 2018-01-21
提前致谢。
答案 0 :(得分:2)
使用datediff()
SELECT count(*) FROM [Table A] WHERE datediff(Close_date,Open_date) <= 60;
答案 1 :(得分:0)
尝试以下查询:
SELECT count(*) numberOfDays
FROM TableA
WHERE close_date>=CURRENT_DATE - INTERVAL 60 DAY;
SELECT count(*) numberOfDays
FROM TableA
WHERE close_date>=CURRENT_DATE - INTERVAL '60' DAY;
答案 2 :(得分:0)
select store, open_date, count(*)
from tableA
where close_date between date_sub(open_date, interval 60 DAY) and date_add(open_date, interval 60 DAY)
group by store, open_date;
这会有效,但您的开始日期必须是当前日期或open_date(这是您的问题)。鉴于open_date对于每一行似乎都不同,你的计数将会很有趣。
此外,count总会返回一些内容,所以除非你使用if或case语句键入0(零),否则它将返回0而不是null。