1. ORDER BY의 사용
데이터를 검색할 떄 특정 컬럼을 기준으로 정렬을 하여 보고자 하는 경우가 많습니다. 예를 들어 사원정보를 검색했는데 그 결과를 부작위로 보는게 아니라 이름순으로 정렬을 하거나 부서별로 정렬을 하거나 할 수 있습니다. 또는 이름순으로 정렬을 할 때 오름차순이나 내림차순을 정하여 검색 할 수도 있습니다. 이러한 목적으로 사용되는 것이 ORDER BY 입니다. SELECT 문의 마지막에 ORDER BY '컬럼명' 을 하게 되면 지정된 컬럼으로 정렬이 됩니다. 자세한 사용 방법을 알아 보도록 하겠습니다.
[예제1]
다음의 예는 Titles 테이블에서 데이터를 검색하는데 가격을 기준으로 정렬을 하는 것을 보여 줍니다.
USE Pubs GO SELECT title_id, pub_id, price FROM titles |
o 1)의 ORDER BY price 부분이 가격을 기준으로 정렬하라고 지시하고 있습니다.
o 오름차순이나 내림차순이 지정되지 않았으므로 기본적으로 오름차순으로 정렬됩니다. 즉 가격이 작은것부터 큰순으로 보여집니다.
[예제2]
다음의 예는 [예제1]의 결과를 가격이 큰것 부터 작은 순으로(내림차순) 표시하도록 정렬 방식을 지정한 예입니다.
USE Pubs GO SELECT title_id, pub_id, price FROM titles |
위 [예제1]의 경우 정렬 방식이 지정되지 않으면 기본적으로 오름 차순이 된다고 있습니다. 이는 다음과 같이 ASC를 이용하여 지정할 수도 있으나 대부분 생락하게 됩니다.
USE Pubs GO SELECT title_id, pub_id, price FROM titles |
이제 ORDER BY의 사용 방법을 알았습니다. 그런데 만일 컬럼이 하나가 아닌 여러개를 기준으로 동시에 정렬을 하고 싶다면 어떻게 하면 될까요?
[예제3]
다음의 예는 우선 pub_id를 기준으로 오름차순으로 정렬하고, 같은 pub_id이면 price를 기준으로 내림차순으로 정렬하는 예를 보여주고 있습니다.
USE Pubs GO SELECT title_id, pub_id, price FROM titles |
2. GROUP BY의 사용
어떤 컬럼을 기준으로 합을 구하거나 평균을 구하거나 또는 최대값이나 최소값을 구할 수 있는데 이때 사용되는 것이 GROUP BY 입니다. 예를 들어 대리점의 실적을 구하는데 각 대리점별로 소계를 내고 싶은 경우가 있습니다. 이런때 사용하시면 됩니다. 예를 들어 사용 방법을 알아보도록 하겠습니다.
[예제1]
다음은 pub_id와 price를 검색하는 일반적인 쿼리문입니다.
USE Pubs GO SELECT pub_id, price FROM titles |
실행 결과는 다음과 같습니다.
|
이제 저희가 보고 싶은 것은 각 pub_id별로 price의 합을, 즉 소계를 보고자 합니다. 다음과 같이 GROUP BY를 사용하시면 됩니다.
USE Pubs GO SELECT pub_id, SUM(price) AS tot_price FROM titles |
실행 결과는 다음과 같습니다.
|
"경고: 집계 또는 다른 SET 연산에 의해 Null 값이 제거되었습니다." 문구가 표시된 이유는 price 컬럼에 NULL 값이 포함되어 있어 이를 무시했다는 의미입니다.
[예제2]
다음의 예는 COUNT 함수를 이용하여 레코드의 갯수를 구하는 예입니다..
USE Pubs GO SELECT pub_id, COUNT(*) AS cnt_price FROM titles |
실행 결과는 다음과 같습니다.
|
[예제3]
다음의 예는 COUNT 함수를 이용하여 레코드의 갯수를 구하는데, 갯수가 5보다 큰것만을 표시하는 예입니다. HAVING을 사용했습니다.
USE Pubs GO SELECT pub_id, COUNT(*) AS cnt_price FROM titles |
실행 결과는 다음과 같습니다.
|
이렇든 HAVING은 GROUP BY와 항상 같이 사용되며 GROUP BY를 사용할 때 조건을 주는 방법입니다.
기억하세요! HAVING은 GROUP BY와 같이 사용된다!
--------------------------------------------------------------------------------------출처 : http://www.sqlworld.pe.kr
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|