SQL对给定的日期范围进行计数

时间:2018-01-23 11:50:10

标签: sql postgresql count

我正在进行查询,计算给定日期的尝试交易次数。但是我想这样做,以便给定给定日期范围的输出,每天单独列出。

select count(id)
from transactions
where service_id in ('1','2','3','4')
and date(created_at) = '2018-01-23';

如您所见,这只会从一个日期返回一个计数。但是,如何针对给定范围对每个日期执行此查询,并将它们打印为自己的计数列。如果我能。

2 个答案:

答案 0 :(得分:1)

您应该将它们打印为单独的而不是单独的

select date(created_at), count(id)
from transactions
where service_id in ('1', '2', '3', '4') and
     date(created_at) >= '2018-01-01' and
     date(created_at) < '2018-01-24'
group by date(created_at)
order by date(created_at);

答案 1 :(得分:0)

您可以使用group byHaving来实现此目标。

select count(id), created_at
from transactions
where service_id in ('1','2','3','4')
grouby created_at
HAVING date(created_at) BETWEEN '2018-01-23' AND '2018-01-28';