实现功能:窗口函数取第一行+去重
select height, FIRST_VALUE(address) OVER (PARTITION BY height ORDER BY index) as address
from dwd_output group by height,address;
这个语句执行没问题
当加了join操作后,语句变为:
select bl.,mi.address
from dwd_height as bl
inner join
(select height, FIRST_VALUE(address) OVER (PARTITION BY height ORDER BY index) as address
from dwd_output group by height,address) as mi
on mi.height=bl.height;
报错信息:
ERROR 1105 (HY000): errCode = 2, detailMessage = GROUP BY expression must not contain analytic expressions: first_value(address
) OVER (PARTITION BY height
ORDER BY index
ASC NULLS FIRST)
然后把语句换成
select bl.,mi.address
from dwd_height as bl
inner join
(select distinct height, FIRST_VALUE(address) OVER (PARTITION BY height ORDER BY index) as address
from dwd_output) as mi
on mi.height=bl.height;
也报错:
ERROR 1105 (HY000): errCode = 2, detailMessage = cannot combine SELECT DISTINCT with analytic functions
但对于单个语句来说:
select distinct height, FIRST_VALUE(address) OVER (PARTITION BY height ORDER BY index) as address
from dwd_output
能正确执行