主要的开窗函数有:
- row_number() over ()
- rank() over()
- dense_rank() over()
正确代码块:
SELECT * FROM (
SELECT District,
CountryCode,
Population,
ROW_NUMBER() over (PARTITION BY CountryCode ORDER BY Population ) AS row_num,
RANK() over (PARTITION BY CountryCode ORDER BY Population ) AS rank1,
dense_rank() over (PARTITION BY CountryCode ORDER BY Population) AS dense_rank2
FROM city
) a
正确结果
错误代码:
SELECT * FROM (
SELECT District,
CountryCode,
Population,
ROW_NUMBER() over (PARTITION BY CountryCode ORDER BY Population ) AS row_num,
RANK() over (PARTITION BY CountryCode ORDER BY Population ) AS rank,
dense_rank() over (PARTITION BY CountryCode ORDER BY Population) AS dense_rank2
FROM city
) a
遇到的问题:
解决问题:1.上网寻求帮助,说是from前面不能有逗号,看了下自己的确实没有没有这个,无从解决问题,就很头疼,试着删除后面两个开窗语句,在运行成功了,一加上就运行失败,
2.后来改了AS后面的名字,运行成功;原来命名不可以与函数名相同