SQL 질문과 답변 게시판
Microsoft SQL Server와 관련된 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다.
글 수 2,909
안녕하세요.. 생 초짜입니다..
도저히 모르겠어서 여기에 질문 합니다.
질문1. 테이블 안에 입력된 정보들 중에서 중복된 값들만 보여지게 할수 있을까요?
num name price
-----------------------
1 수박 1000
2 쿠우 2000
3 레몬 3000
4 수박 1000
위와같은 데이터가 있다면
num name price
-----------------------
1 수박 1000
2 수박 1000
이런식으로 나타나는 방법?
질문2. 위의 표에서 1개인 값과 중복값중에 대표적인 값중 1개만 보여지게 할수 있을까요?
num name price
-----------------------
1 수박 1000
2 쿠우 2000
3 레몬 3000
이렇게 중복값은 1개만 보이고 나머지들과 같이 보여지게요..
부탁드리겠습니다...ㅠㅠ


GROUP BY와 HAVING을 이용하세요.
SELECT NAME , MAX(PRICE)
FROM 테이블
GROUP BY 이름
HAVING COUNT(*) > 1
위에 처럼 하면 <이름>으로 그룹을 묶었을 때 Count(*)가 1개 이상인 것을 불러오니까~
num name price
-----------------------
1 수박 1000
이렇게 나올꺼에요.
근데 님은
num name price
-----------------------
1 수박 1000
2 수박 1000
이렇게 원하시니까~
SELECT *
FROM 테이블
WHERE NAME IN (
SELECT NAME
FROM 테이블
GROUP BY 이름
HAVING COUNT(*) > 1
)
ㅋ 이렇게 하면 나오긴 하겠죠~
그리고 두번째 값은
SELECT NAME , MAX(PRICE)
FROM 테이블
GROUP BY 이름
그냥 이래하면 될꺼 같은데요. MAX(PRICE) 부분은 MIN 으로 하든지 AVG로 하든지~ 하시면 될듯
기쁜마음으로 즐거운 하루 되세요!