2
如果我有一个这样的表称为orders
:重复查询其在日期范围返回多个列的PostgreSQL
id date value client_name
1 01/02/2017 50 Name 1
2 02/02/2017 60 Name 2
3 02/02/2017 60 Name 2
4 03/02/2017 20 Name 2
和获取有关订单某一天我的详细信息的查询:
Select
sum(value) as total_order_value,
count(id) as number_of_orders
from orders
where orders.date = '02/03/2017'::date
有没有办法构建一个单一的查询,将执行一个日期范围内的查询,给每个日期执行一行?
我用这样的事情在过去的:
select date(a),
(SUB QUERY WHICH RETURNS A SINGLE VALUE)
FROM generate_series(
(CURRENT_DATE - interval '2 months')::date,
CURRENT_DATE,
'1 day'
) s(a)
但是这只能如果子查询返回一个值。我正在寻找一种方法来在子查询返回多个列时执行此操作(例如上面的第一个示例中)。
所以从上面的第一个例子,这将产生的结果集的查询:
date total_order_value number_of_orders
01/02/2017 50 1
02/02/2017 120 2
03/02/2017 20 1
04/02/2017 0 0
05/02/2017 0 0
etc
感谢的日子里,方法是有道理的,但如果我尝试使用生成系列,则会出现语法错误? – TalkingQuickly
@交谈快速修复 –