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
운영게시판
최근게시물
MS-SQL Q&A 7148 게시물 읽기
No. 7148
group by 문의
작성자
문의자
작성일
2018-10-26 15:56ⓒ
2018-10-26 15:56ⓜ
조회수
2,154

안녕하세요 group by 문의 드리려고합니다.

 

 

[데이터]

 

a b c 부품 주사용여부

11 R1 1 k01361 Y

11 R2 1 k01361 Y

11 R2 2 k00256 N

11 R2 3 k01843 N

11 R2 4 k01973 N

 

 

pk는 a,b,c 이며 c는 순번입니다.

 

 

위의 데이터 중 a,b 기준으로 데이터 하나만 가져오려고 하며

 

주사용여부가 y인것만 가져오려고합니다.

 

위의 데이터기준으로는

 

11 R1 1 k01361 Y

11 R2 1 k01361 Y

 

이렇게 나와야하는데

 

부품이 주사용여부가 y인 부품을 가져오려고하는데

 

어떤식으로 가져오는게 효율적일지 가이드 부탁드립니다.

 

감사합니다.

 

 

 

select a

,b

, --부품에 대한 처리 필요

, max(주사용여부)

from 가

group by a,b

 

 

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

a, b 기준으로 주사용 되는것은 오직 1개 뿐인가요?

그렇다면? group by 할게 아니라 그냥 where 절 쓰면 되는데요?
SELECT *
  FROM t
 WHERE 주사용여부 = 'Y'
;

2개 이상 가능하다면? 1개를 선택하는 기준이 필요합니다.
c 가 작은걸 가져온다던가?
c 가 큰걸 가져온다던가?
SELECT *
  FROM (SELECT a, b, c
             , 부품
             , ROW_NUMBER() OVER(PARTITION BY a, b ORDER BY c) rn
          FROM t
         WHERE 주사용여부 = 'Y'
        ) a
 WHERE rn = 1
;

마농(manon94)님이 2018-10-26 17:19에 작성한 댓글입니다.

답변 감사합니다!

 

그럼 혹시 주사용여부가 y가 안들어오고 n만 있는경우는 어떻게할까요?

 

주사용여부는 하나 이거나, 하나도 없을수도 있습니다.

문의자님이 2018-11-07 15:30에 작성한 댓글입니다. Edit

주사용여부 = 'N' 인 것도 나와야 한다면?
주사용여부 = 'Y' 조건을 WHERE 절에서 SELECT 절로 옮기세요.
정렬에도 주사용여부 추가


SELECT *
  FROM (SELECT a, b
             , CASE WHEN 주사용여부 = 'Y' THEN c END c
             , CASE WHEN 주사용여부 = 'Y' THEN 부품 END 부품
             , ROW_NUMBER() OVER(PARTITION BY a, b
                                     ORDER BY 주사용여부 DESC, c) rn
          FROM t
        ) a
 WHERE rn = 1
;

마농(manon94)님이 2018-11-07 17:17에 작성한 댓글입니다.

감사합니다!

문의자님이 2018-11-09 13:18에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7151쿼리 문의드립니다. [3]
kris
2018-11-11
2186
7150쿼리문 질문 드립니다. [1]
gggg
2018-11-01
2105
7149dateadd 함수 관련 질문.. [1]
권기혁
2018-11-01
2188
7148group by 문의 [4]
문의자
2018-10-26
2154
7147테이블 하나를 이원화?둘로 나누는것에 대한 궁금증 [3]
김지철
2018-10-24
2397
7146datediff 질문좀 하겠습니다. [3]
박상진
2018-10-19
2164
7145같은 쿼리속도 급격한 저하 [3]
Kindle
2018-10-19
2616
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.053초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다