database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41578 게시물 읽기
No. 41578
GROUP BY 절의 간단한 문의
작성자
DB초보
작성일
2018-06-14 17:33ⓒ
2018-06-14 17:54ⓜ
조회수
4,922

안녕하세요

 

GROUP BY 절의 간단한 문의 드립니다.

 

우선 PK가 아닌 A,B,C 컬럼에서

 

A,B 컬럼 데이터가 같은 ROW 중 C값이 어떤값들이 존재하는지를 찾고자합니다.

 

말하자면

 

SELECT A,B, DISTINCT의 C 값

FROM 가나다

GROUP BY A,B

 

이런식의 C값을 알고자하는데요. COUNT가 아닌 실제 데이터들을 알고싶습니다.

 

SELECT A,B,C

FROM 가나다

GROUP BY A,B,C

 

도 되긴하나 데이터가 워낙 많아 일일이 비교가 쉽지 않은 상황이라

 

C의 DISTINCT 값이 2 이상인 것만 추출하려고합니다.

 

이 글에 대한 댓글이 총 2건 있습니다.

SELECT a, b
     , COUNT(DISTINCT c) cnt
     , WM_CONCAT(DISTINCT c) c
  FROM 가나다
 GROUP BY a, b
HAVING COUNT(DISTINCT c) > 1
;


wm_concat(10g) 는 비공식 함수이므로 공식 함수인 ListAgg(11g) 를 사용해야 한다.
하지만 ListAgg 에는 Distinct 기능이 없다.
따라서 별도 중복 제거 후에 집계 처리.


SELECT a, b
     , COUNT(*) cnt
     , LISTAGG(c, ',') WITHIN GROUP(ORDER BY c) c
  FROM (SELECT DISTINCT a, b, c FROM 가나다)
 GROUP BY a, b
HAVING COUNT(*) > 1
;

마농(manon94)님이 2018-06-15 08:46에 작성한 댓글입니다.

감사합니다!

DB초보님이 2018-06-19 13:27에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
4158230분단위로 가중치를 주고 싶은데 어떤쿼리를 짜야할까요? [3]
aladdin
2018-06-19
4572
41581안녕하십니까. 오라클 샘플 데이터 생성 관련하여, 글을 올립니다.
브라움
2018-06-18
4352
41579조건에 따라 쿼리 분기시키기 [5]
PPP
2018-06-14
4939
41578GROUP BY 절의 간단한 문의 [2]
DB초보
2018-06-14
4922
41577안녕하세요...질문이있습니다~~ [1]
윤지환
2018-06-11
4436
41576테이블 스페이스에 데이터파일을 추가하려고 합니다. [1]
선이
2018-05-29
4759
41575sql 문제 ..도와주세요...ㅜㅜ [15]
도와주세요
2018-05-28
5070
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다