BLOG main image
전체 (276)
[Computer] (42)
[Programming] (62)
[DBMS] (26)
[Operating System] (21)
[Study English] (8)
[For money] (28)
[Interest] (89)
«   2009/11   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
77890 Visitors up to today!
Today 82 hit, Yesterday 46 hit
'몰랐던'에 해당되는 글 1건
[폭주기관차, 2007/03/01 18:46, [DBMS]/Oracle]
SELECT * FROM TestTable;

IDUMMY    
-----------
          1
          2
          1
          3
          4
          3
          3
          2
          4

9 rows selected.


- IDUMMY의 중복되는 횟수 출력

SELECT DISTINCT( IDUMMY ), COUNT( IDUMMY )
FROM TestTable
GROUP BY IDUMMY;


IDUMMY      COUNT(IDUMM
----------- -----------
          1           2
          2           2
          3           3
          4           2

4 rows selected.


- 중복값이 2이상인 값 추출

SELECT DISTINCT( IDUMMY ), COUNT( IDUMMY )
FROM TestTable
WHERE COUNT( IDUMMY ) >= 2
GROUP BY IDUMMY

에러 : group function is not allowed here

Count(IDUMMY)란 함수를 Where절에선 사용할 수 없다는 것이다.
그렇다면 중복값이 2이상인 값을 추출하기 위해선 아래와 같이 작성해야한다.

SELECT A.IDUMMY
FROM (
         SELECT DISTINCT( IDUMMY ) IDUMMY, COUNT( IDUMMY ) CNT
         FROM TestTable
         GROUP BY IDUMMY ) A
WHERE A.CNT >= 2;


IDUMMY    
-----------
          1
          2
          3
          4

4 rows selected.

= 나는 그래서 Select 다음에 쓴 함수(Distinct(), Count()등)는 From Table명 다음에 한번 더 쓰는건 불가능한줄
   알았는데 아래 코드는 수행이 되었다.

SELECT DISTINCT( IDUMMY ), COUNT( IDUMMY )
FROM TestTable
GROUP BY IDUMMY
ORDER BY COUNT( IDUMMY ) DESC;


IDUMMY      COUNT(IDUMM
----------- -----------
          3           3
          1           2
          4           2
          2           2

4 rows selected.

여러분들은 다 생각했던거 였나??? ㅋㅋ 나는 전혀 생각치 못했었다.

본 결과물은 Oracle 9i에서의 실험되었습니다.
Trackback Address :: http://kongmks.cafe24.com/trackback/152
Name
Password
Homepage
Secret
*1