0

Oracleのドキュメントには、使用できると書かれています:

select avg(id) over (partition by <expression>) from table1;

たとえば、これはうまくいきます:

select avg(id) over (partition by id) from table1;

しかし、「より大きい」式を使用すると、エラー ORA-00907 が発生しました。

select avg(id) over (partition by (id > 3)) from table1;

式の構文はどこに文書化されていますか? 「より大きい」式を使用してレコード セットを分割できますか?

4

2 に答える 2

0

これらの種類の式を使用するために、私は常に変数をサブクエリに入れます。

select avg(id) over (partition by whichid)
from (select t.*, (case when id > 3 then 'low' else 'high' end) as whichid
      from table1 t
     ) t
于 2012-08-20T13:29:17.980 に答える