1

オラクル11g

目的の結果を得るために、新しい列として max(rownum) を含めたいと思います。要するに、このQueryAの結果を新しい列としてQueryBに追加したいと考えています。 QueryB に max(rownum) を含めると、「単一グループ関数ではありません。colaまたはrownumでグループ化すると、QueryBも機能しません。

クエリA

with data_row as
(
select 1 as col_a from dual union all
select 2 as col_a from dual union all 
select 3 as col_a from dual )
select max(rownum) as max_row from data_row

クエリB

with data_row as
( select 1 as col_a from dual union all
  select 2 as col_a from dual union all
  select 3 as col_a from dual)
select col_a, rownum from data_row

望ましい結果

Col_a    Rownum   MaxRowNum
--------------------------------
1          1       3
2          2       3
3          3       3
4

1 に答える 1

2

count関数の分析形式を使用できます

SQL> ed
Wrote file afiedt.buf

  1  with data_row as (
  2    select 1 as colA from dual union all
  3    select 2 as cola from dual union all
  4    select 3 as cola from dual
  5  )
  6  select colA, rownum, count(*) over () cnt
  7*   from data_row
SQL> /

      COLA     ROWNUM        CNT
---------- ---------- ----------
         1          1          3
         2          2          3
         3          3          3
于 2013-02-22T21:24:21.200 に答える