如何计算特定日期内的行数

时间:2018-03-02 03:46:22

标签: mysql sql amazon-redshift

我想执行一个查询,该查询计算按商店在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

提前致谢。

3 个答案:

答案 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;

work on SQL Fiddle

答案 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。