我可以通过查询来获得每月和每家商店18至24岁的顾客数量。 我在做这样的:如何计算PostgreSQL在多个日期范围内的出现次数
select year, month, shop_id, count(birthday)
from customers
where birthday
BETWEEN '1992-01-01 00:00:00' AND '1998-01-01 00:00:00'
group by year, month, shop_id;
现在,我有一个问题,使这个查询在同一时间几个范围。
我目前这个数据库模式:
shop_id | birthday | year | month |
--------+----------+------+--------
567 | 1998-10-10 | 2014 | 10 |
567 | 1996-10-10 | 2014 | 10 |
567 | 1985-10-10 | 2014 | 10 |
234 | 1990-10-10 | 2014 | 10 |
123 | 1970-01-10 | 2014 | 10 |
123 | 1974-01-10 | 2014 | 11 |
而且我想获得这样的事:
shop_id | year | month | 18 < age < 25 | 26 < age < 35
--------+------+-------+---------------+-------------
567 | 2014 | 10 | 2 | 1
234 | 2014 | 10 | 1 | 0
123 | 2014 | 10 | 0 | 0
在第一个查询,其中一个店有它不管理的情况下没有客户。如果没有,如何获得0?
如何同时查询多个日期范围?
在选择列表中有一个表达式,每个年龄组都有一个表达式。例如。 ',计数(当......然后1结束的情况下)为18_age_25,计数(当...的时候为 – jarlh
年龄? –