SQL Test

박무연·2023년 3월 13일
0

🔵SQL

목록 보기
12/15
post-thumbnail

- 문제

PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.

- 풀이

SELECT (PRICE - PRICE % 10000) GROUP_PRICE  , count(PRICE)
from PRODUCT 
group by GROUP_PRICE
order by GROUP_PRICE asc
  • 가격대별 혹은 어떤 조건으로 여러번 묶을필요가 있다.
  • 가격 같은 경우 나누기로 문제의 조건에 따라 수를 만들어 주고 group by 될 수 있도록 한다.
  • TRUNCATE 를 쓰기도 하는데 굳이 다..

출처 : programeers > GROUP BY > 가격대 별 상품 개수 구하기

- 문제

동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.

- 풀이

SELECT NAME , count(NAME)
from ANIMAL_INS
group by NAME
having count(name) > 1
order by NAME
  • 문제에서 NULL 값을 제외 하라 조건을 주었다.
  • count(NAME)을 사용하면 NULL 값이 제외 된다
  • count(*) 을 사용하면 NULL 값을 제외하지 않는다 따라서 제외 시켜줄 명령어를 추가 해야된다.

e.g)

SELECT NAME , count(NAME) NAME
from ANIMAL_INS
where NAME is not null
group by NAME
having count(name) > 1
order by NAME
  • 많은 사람들이 select 에서 보다는 from 절에 조건을 주어 문제를 푸는 것 같다

e.g)

SELECT *
FROM 
(
SELECT NAME,COUNT(NAME) AS COUNT
FROM ANIMAL_INS 
WHERE NAME IS NOT NULL
GROUP BY NAME)X
WHERE COUNT>=2
ORDER BY NAME

출처 : programeers > GROUP BY > 동명 동물 수 찾기

profile
Easy day!

0개의 댓글