我正在进行查询,计算给定日期的尝试交易次数。但是我想这样做,以便给定给定日期范围的输出,每天单独列出。
select count(id)
from transactions
where service_id in ('1','2','3','4')
and date(created_at) = '2018-01-23';
如您所见,这只会从一个日期返回一个计数。但是,如何针对给定范围对每个日期执行此查询,并将它们打印为自己的计数列。如果我能。
答案 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 by
和Having
来实现此目标。
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';