mondegreen

[SQL 코딩 테스트 대비-MySQL] SUM, MAX, MIN 본문

기타/SQL

[SQL 코딩 테스트 대비-MySQL] SUM, MAX, MIN

앙갱 2024. 3. 29. 16:45
반응형

1. 가장 비싼 상품 구하기

SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT

2. 최댓값 구하기

SELECT MAX(DATETIME) AS 시간 FROM ANIMAL_INS

3. 잡은 물고기 중 가장 큰 물고기의 길이 구하기

1) 추출한 데이터에 문자열 형식으로 특정 단어를 덧붙여주려면 CONCAT를 활용하면 된다.

SELECT CONCAT(MAX(LENGTH),'cm') AS MAX_LENGTH FROM FISH_INFO

4. 가격이 제일 비싼 식품의 정보 출력하기

SELECT * FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
SELECT * FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1

5. 최솟값 구하기

SELECT DATETIME AS 시간 
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME)
                    FROM ANIMAL_INS)

6. 동물 수 구하기

SELECT COUNT(ANIMAL_ID) AS count
FROM ANIMAL_INS

7. 중복 제거하기

1) 이 문제에서 요구하는 출력과는 다르지만 COUNT(*)으로 특정 컬럼명을 지정하지 않고 숫자를 카운트한다면 NULL도 포함하여 센다는 점! 

SELECT COUNT(DISTINCT(NAME)) AS count
FROM ANIMAL_INS

8. 조건에 맞는 아이템들의 가격의 총합 구하기

SELECT SUM(PRICE) AS TOTAL_PRICE
FROM ITEM_INFO
WHERE RARITY = "LEGEND"

9. 물고기 종류 별 대어 찾기

1) 테이블 간 동일한 FISH_TYPE을 가지고 있는 경우 교집합으로 테이블 조인
2) 서브 쿼리를 활용하여 FISH_TYPE 별로 최대 길이를 가진 행을 구한다.

SELECT ID, FISH_NAME, LENGTH
FROM FISH_INFO
INNER JOIN FISH_NAME_INFO USING (FISH_TYPE)
WHERE FISH_TYPE IN 
(
    SELECT FISH_TYPE
    FROM FISH_INFO 
    GROUP BY FISH_TYPE 
    HAVING LENGTH = MAX(LENGTH)
)
ORDER BY 1;

10. 연도별 대장균 크기의 편차 구하기

WITH MAX_SIZE_TABLE AS
(
    SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, MAX(SIZE_OF_COLONY) AS MAX_SIZE
    FROM ECOLI_DATA
    GROUP BY YEAR
)


SELECT YEAR(DIFFERENTIATION_DATE) AS YEAR, B.MAX_SIZE-A.SIZE_OF_COLONY AS YEAR_DEV, A.ID
FROM ECOLI_DATA AS A
INNER JOIN MAX_SIZE_TABLE AS B 
ON YEAR(DIFFERENTIATION_DATE) = B.YEAR
ORDER BY 1, 2
반응형