如何计算某天的行数
Posted
技术标签:
【中文标题】如何计算某天的行数【英文标题】:How to count the numbers of rows within a certain days 【发布时间】:2018-03-02 03:46:22 【问题描述】:我想执行一个查询,按商店计算在 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
提前致谢。
【问题讨论】:
你的主键是什么? 您使用的是哪个数据库——mysql 还是 Amazon Redshift?它们每个的语法都不同。 亚马逊红移 【参考方案1】:使用 datediff()
SELECT count(*) FROM [Table A] WHERE datediff(Close_date,Open_date) <= 60;
【讨论】:
【参考方案2】:尝试以下查询:
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。
【讨论】:
我的操作无效:在“60”或附近出现语法错误; 尝试其中一个,除了它们都在 sql fiddle 上运行顺利。点击链接查看演示。 你做了什么?我的答案是正确的,所以投票吧!【参考方案3】: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。
【讨论】:
以上是关于如何计算某天的行数的主要内容,如果未能解决你的问题,请参考以下文章