가입하다
-- 코드를 입력하세요
SELECT A.FLAVOR
FROM FIRST_HALF AS A
JOIN ICECREAM_INFO AS B
ON A.FLAVOR = B.FLAVOR
WHERE A.TOTAL_ORDER > 3000 AND
B.INGREDIENT_TYPE = 'fruit_based'
ORDER BY TOTAL_ORDER DESC
조건에 맞는 중고거래 댓글을 찾아보세요
SELECT
B.TITLE,
B.BOARD_ID,
R.REPLY_ID,
R.WRITER_ID,
R.CONTENTS,
DATE_FORMAT(R.CREATED_DATE, "%Y-%m-%d") AS CREATED_DATE
FROM
USED_GOODS_BOARD AS B
JOIN USED_GOODS_REPLY AS R ON B.BOARD_ID = R.BOARD_ID
WHERE
B.CREATED_DATE >= "2022-10-01"
AND B.CREATED_DATE <= "2022-10-31"
ORDER BY
R.CREATED_DATE,
B.TITLE;
제품별 오프라인 매출 계산
지름길: https://school.programmers.co.kr/learn/courses/30/lessons/131533
-- 코드를 입력하세요
SELECT P.product_code,
Sum(P.price * S.sales_amount) AS SALES
FROM product P
JOIN offline_sale S
ON P.product_id = S.product_id
GROUP BY P.product_code
ORDER BY sales DESC,
P.product_code
기준에 부합하는 도서 및 저자 목록 출력
지름길: https://school.programmers.co.kr/learn/courses/30/lessons/144854
-- 코드를 입력하세요
SELECT book_id,
author_name,
Date_format(published_date, "%y-%m-%d") AS PUBLISHED_DATE
FROM book AS B
JOIN author AS A
ON B.author_id = A.author_id
WHERE B.category = "경제"
ORDER BY B.published_date;
그룹 애프터 – HAVE
GROUP BY – HAVING을 사용하면 특정 열로 그룹화할 수 있으며 이때 HAVING 절과 일치하는 조건으로 그룹화할 수 있습니다.
여기를 읽으면 이해하게 될 것입니다.
https://wkdtjsgur100.github.io/groupby-having/
교환된 제품 및 회원 목록 가져오기
프로그래머 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131536
-- 코드를 입력하세요
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING count(*) >= 2
ORDER BY USER_ID, PRODUCT_ID DESC;
위의 문제로 샘플 코드를 만들 수 있는데 이것만으로는 헷갈려서 좀 더 풀어보도록 하겠습니다.
같은 이름을 가진 동물의 수 찾기
지름길: https://school.programmers.co.kr/learn/courses/30/lessons/59041
-- 코드를 입력하세요
SELECT NAME,
Count(*)
FROM animal_ins
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING Count(*) >= 2
ORDER BY NAME
가격대별로 제품 수 결정
지름길: https://school.programmers.co.kr/learn/courses/30/lessons/131530
-- 코드를 입력하세요
SELECT Truncate(price, -4) AS PRICE_GROUP,
Count(*) AS PRODUCTS
FROM product
GROUP BY price_group
ORDER BY price_group
TRUNCATE는 숫자를 내림하는 데 사용할 수 있습니다.
위의 예에서는 만원의 숫자로 선택된 아이들이 그룹화 되었습니다.
그것은 멋 있었어.
부서별 총 발령인원 표시
지름길: https://school.programmers.co.kr/learn/courses/30/lessons/132202
-- 코드를 입력하세요
SELECT mcdp_cd AS 진료과코드,
Count(mcdp_cd) AS 5월예약건수
FROM appointment
WHERE Month(apnt_ymd) = 5
AND Year(apnt_ymd) = 2022
GROUP BY mcdp_cd
ORDER BY 5월예약건수,
진료과코드
ORDER BY로 “5월 예약건수”라고 말했는데 계속 틀렸어요. ORDER BY의 경우 따옴표 없이 5월의 예약 수를 지정해야 합니다.
같은 이름을 가진 동물의 수 찾기
바로가기 : https://school.programmers.co.kr/learn/courses/30/lessons/59041
-- 코드를 입력하세요
SELECT NAME,
Count(NAME) AS "COUNT"
FROM animal_ins
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING Count(NAME) > 1
ORDER BY NAME;
입양 시기 찾기(1)
바로가기 : https://school.programmers.co.kr/learn/courses/30/lessons/59412
-- 코드를 입력하세요
SELECT Hour(datetime) AS HOUR,
Count(animal_id) AS COUNT
FROM animal_outs
WHERE Hour(datetime) >= 9
AND Hour(datetime) <= 19
GROUP BY hour
ORDER BY hour;
질문 1: where 절과 having 절 모두 조건을 설정할 수 있는데 어느 것이 성능면에서 더 좋습니까?
A: HAVING 그룹은 아이들을 SLELECT하고 그들을 조건화합니다.
WHERE는 SELECT하는 동안 GROUP으로 가져온 자식을 필터링하기 위한 것입니다.
따라서 WHERE로 행 수를 줄인 후 다음 작업을 수행하는 것이 훨씬 빠릅니다.
질문 2: 조건식과 BETWEEN의 성능 차이는 무엇입니까?
결과: 불평등이 빠르게 진행됩니다.
상식적으로 봤을 때 = >= 같은 연산자가 BETWEEN IS 같은 연산자보다 빠르다는 것은 알고 있었지만 그 이유는 몰랐습니다.
나는해야한다
재료별로 분류된 총 아이스크림 주문
바로가기 : https://school.programmers.co.kr/learn/courses/30/lessons/133026
-- 코드를 입력하세요
SELECT I.ingredient_type,
Sum(total_order) AS TOTAL_ORDER
FROM first_half AS F
JOIN icecream_info AS I
ON F.flavor = I.flavor
GROUP BY I.ingredient_type
ORDER BY total_order