我有带有列的表:主题,人,published_date。我想创建一个查询,该查询可以帮助我计算每个人每个季度在特定主题上写了多少次。例子:
topic person published_date
'world' JS 2016-05-05
'world' JS 2016-05-10
'nature' AR 2016-12-01
应该返回类似
topic person quarter how_many_times
'world' JS 2 2
'nature' AR 4 1
我可以按主题和人分组
select topic, person, published_date, count(*) from table group by topic, person, published_date
但是如何将published_date分组为四分之一?
最佳答案
假设published_date
是日期类型列,则可以使用extract
函数,如下所示:
select
topic,
person,
extract(quarter from published_date) as quarter,
count(*)
from
table1
group by
topic,
person,
extract(quarter from published_date)
order by
extract(quarter from published_date) asc
Sample SQL Fiddle
如果日期可以落入不同的年份,则可能需要将年份添加到选择和分组依据中。
关于postgresql - Postgres按季度分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37071631/