Order by엔 Select에서 쓰인 함수도 사용 가능
[CODE type=oracle8]Select * From TestTable;[/CODE]
IDUMMY
-----------
1
2
1
3
4
3
3
2
4
9 rows selected.
- IDUMMY의 중복되는 횟수 출력
[CODE type=oracle8]Select Distinct( IDUMMY ), Count( IDUMMY )
From TestTable
Group By IDUMMY;[/CODE]
From TestTable
Group By IDUMMY;[/CODE]
IDUMMY COUNT(IDUMM
----------- -----------
1 2
2 2
3 3
4 2
4 rows selected.
- 중복값이 2이상인 값 추출
[CODE type=oracle8]Select Distinct( IDUMMY ), Count( IDUMMY )
From TestTable
Where Count( IDUMMY ) >= 2
Group By IDUMMY[/CODE]
From TestTable
Where Count( IDUMMY ) >= 2
Group By IDUMMY[/CODE]
에러 : group function is not allowed here
Count(IDUMMY)란 함수를 Where절에선 사용할 수 없다는 것이다.
그렇다면 중복값이 2이상인 값을 추출하기 위해선 아래와 같이 작성해야한다.
[CODE type=oracle8]Select A.IDUMMY
From (
Select Distinct( IDUMMY ) IDUMMY, Count( IDUMMY ) CNT
From TestTable
Group By IDUMMY ) A
Where A.CNT >= 2;[/CODE]
From (
Select Distinct( IDUMMY ) IDUMMY, Count( IDUMMY ) CNT
From TestTable
Group By IDUMMY ) A
Where A.CNT >= 2;[/CODE]
IDUMMY
-----------
1
2
3
4
4 rows selected.
= 나는 그래서 Select 다음에 쓴 함수(Distinct(), Count()등)는 From Table명 다음에 한번 더 쓰는건 불가능한줄
알았는데 아래 코드는 수행이 되었다.
[CODE type=oracle8]Select Distinct( IDUMMY ), Count( IDUMMY )
From TestTable
Group By IDUMMY
Order By Count( IDUMMY ) Desc;[/CODE]
From TestTable
Group By IDUMMY
Order By Count( IDUMMY ) Desc;[/CODE]
IDUMMY COUNT(IDUMM
----------- -----------
3 3
1 2
4 2
2 2
4 rows selected.
여러분들은 다 생각했던거 였나??? ㅋㅋ 나는 전혀 생각치 못했었다.
본 결과물은 Oracle 9i에서의 실험되었습니다.