【发布时间】:2019-01-04 00:51:09
【问题描述】:
我是初学者,因此对于简单/非技术性的术语,请提前致歉。
我有一个表格,其中每一行都显示公司名称、日/月/年,以及他们当天收到的访问次数。我的目标是显示 2018 年 1 月访问次数最多的公司。
我能够使用以下查询找到每家公司在 2018 年 1 月获得的访问次数:
select to_char(datecolumn,'Mon') as monthkey, extract(year from datecolumn) as yearkey, companyname, sum(visits) as sumvisits
from t1
where monthkey = 'Jan' and yearkey = '2018'
group by monthkey, yearkey, companyname
order by companyname
现在我需要使用窗口函数来找到一月份的最大访问量以及相应的公司,但是我卡住了。
我试过按月分区:
select companyname, monthkey, max(sumvisits) over (partition by monthkey) as maxvisits
from (select to_char(f_date,'Mon') as monthkey, extract(year from f_date) as yearkey, companyname, sum(visits) as sumvisits
from t1
where monthkey = 'Jan' and yearkey = '2018'
group by monthkey, yearkey, dealername
order by companyname)
但是这个查询只是给了我一家公司的最大访问量,并为每家公司列出了它。
我认为我不应该使用限制函数或类似的东西,因为查询需要适用于多个月。
我想看看:
monthkey yearkey companyname sumvisits
Jan 2018 ABCInc 5000
有人可以帮助建议我做错了什么/指出我正确的方向吗?
【问题讨论】:
标签: sql postgresql subquery window-functions