Distinct window functions are not supported: count(distinct is_remove#38L) windowspecdefinition(statis_id#15, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$()))
时间: 2024-02-24 07:58:10 浏览: 175
在Hive中,不支持在窗口函数中使用DISTINCT关键字。如果你想要计算唯一值的数量,可以使用以下两种方法:
1. 使用子查询:
```
SELECT col1, COUNT(DISTINCT col2)
FROM (
SELECT DISTINCT col1, col2
FROM table_name
) t
GROUP BY col1;
```
这个查询先使用子查询获取唯一的col1和col2组合,然后在外层查询中计算每个col1值下的唯一col2数量。
2. 使用UDAF:
```
CREATE TEMPORARY FUNCTION count_distinct AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFCountDistinct';
SELECT col1, count_distinct(col2)
FROM table_name
GROUP BY col1;
```
这个查询使用Hive提供的UDAF函数来计算每个col1值下的唯一col2数量。
需要注意的是,UDAF函数需要先在Hive中进行注册才能使用。
阅读全文