【发布时间】:2018-03-14 01:32:44
【问题描述】:
我有一个这样的数据集,其中一些行很有用,但已损坏。
create table pages (
page varchar,
cat varchar,
hits int
);
insert into pages values
(1, 'asdf', 1),
(1, 'fdsa', 2),
(1, 'Apples', 321),
(2, 'gwegr', 30),
(2, 'hsgsdf', 2),
(2, 'Bananas', 321);
我想知道每个页面的正确类别以及总点击量。正确的类别是点击次数最多的类别。 我想要一个像这样的数据集:
page | category | sum_of_hits
-----------------------------
1 | Apples | 324
2 | Bananas | 353
我能得到的最远距离是:
SELECT page,
last_value(cat) over (partition BY page ORDER BY hits) as category,
sum(hits) as sum_of_hits
FROM pages
GROUP BY 1, 2
但它出错了:ERROR: column "pages.hits" must appear in the GROUP BY clause or be used in an aggregate function Position: 83。
我尝试将点击数汇总 - ORDER BY max(hits) 但这没有意义,也不是我想要的。
【问题讨论】:
标签: sql amazon-redshift window-functions