Postgresql - 窗口函数聚合
Posted
技术标签:
【中文标题】Postgresql - 窗口函数聚合【英文标题】:Postgresql - Window Function Aggregate 【发布时间】:2017-06-07 02:43:09 【问题描述】:我正在尝试按产品类型查找每月的新用户数量。但是,我仍然收到错误消息,要求在聚合函数中使用 cnt
。
SELECT EXTRACT(MONTH FROM date) AS month
FROM (SELECT users.date,
COUNT(*) OVER(PARTITION BY product_type) AS cnt FROM users) AS u
GROUP BY month
ORDER BY cnt DESC;
【问题讨论】:
编辑您的问题并提供示例数据和所需结果。 【参考方案1】:这似乎是一个非常奇怪的结构。这是一个不使用窗口函数的方法:
select date_trunc('month', date) as yyyymm, product_id, count(*)
from (select distinct on (u.userid) u.*
from users u
order by u.userid, u.date
) u
group by date_trunc('month', date), product_id
order by yyyymm, product_id;
【讨论】:
以上是关于Postgresql - 窗口函数聚合的主要内容,如果未能解决你的问题,请参考以下文章