2013-02-22 5 views
1

오라클 11g열 값으로 반환 된 총 행을 포함시키는 방법은 무엇입니까?

내가 원하는 결과를 얻을 수있는 새로운 열로 최대 (ROWNUM)를 포함하고 싶습니다. 본질적으로, QueryA의 결과를 QueryB에 대한 새 열로 추가하고 싶습니다. QueryB에 max (rownum)를 포함 시키면 '단일 그룹이 아닌'함수가됩니다. 콜라 나 rownum으로 그룹화 할 때도 QueryB가 작동하지 않습니다.

QUERYA

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 

QueryB

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 

답변

2

당신은 analyti을 사용할 수 있습니다 c 형식의 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 
+1

@ PM77-1 - 왜 우리는 'SUM'을 사용해야합니까? 그리고 우리가 'SUM'에 대해 무엇을 믿어야합니까? 결과는 결과 집합의 행 수를 결정하는 것이 목표 인 것처럼 들리므로 'COUNT'는 현명한 선택처럼 보입니다. –

+0

사실 ** MAX에 대해서 생각하고 있었는데 -하지만 이것도 잘못되었습니다. 내 의견을 무시하십시오. –