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

问题描述 投票:0回答:3

我想执行一个查询,计算open_date by store存储的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

提前致谢。

mysql sql amazon-redshift
3个回答
2
投票

使用datediff()

SELECT count(*) FROM [Table A] WHERE datediff(Close_date,Open_date) <= 60;

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


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将始终返回一些内容,因此除非使用键入0(零)的if或case语句,否则它将返回0而不是null。

© www.soinside.com 2019 - 2024. All rights reserved.