我有两个问题:
select count(*) over (partition by col1) from t1
和
select case when count(*) over (partition by col1) >1 then 1 else 0 end from t1
第一个工作正常。然而第二个引发了一个错误:
Invalid column reference 'count': (possible column names are: <all columns in t1>)
在*
中添加任何列名而不是count
会产生相同的行为。
导致问题的原因是什么?我没有在case when
和over partition by
的dosc中找到任何限制。
答案 0 :(得分:0)
试试这个:
select COUNT(CASE WHEN >1 THEN 1 ELSE 0 END) over (partition by col1) from t1;