KEEP GOING
[MySQL] 기출 예제 정리 본문
반응형
[모음으로 끝나지 않는 도시명 구하기]
SELECT DISTINCT CITY FROM STATION WHERE RIGHT(CITY, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
- RIGHT(컬럼명, n): 컬럼명 기준 오른쪽에서 n번째까지의 글자
[직업과 해당 직업을 가지고 있는 사람 수 조회하기]
* 'There are a total of 3 teachers'와 같이 출력할 것.
* 해당 직업을 가진 사람 수를 기준으로 오름차순, 만약 사람 수가 같다면 직업 알파벳 순으로 정렬할 것.
SELECT CONCAT(NAME, '(', LEFT(OCCUPATION, 1), ')') FROM OCCUPATIONS ORDER BY NAME ASC;
SELECT CONCAT('There are a total of ', COUNT(OCCUPATION), ' ', LOWER(OCCUPATION), 's.')
FROM OCCUPATIONS
GROUP BY OCCUPATION
ORDER BY COUNT(OCCUPATION), OCCUPATION;
- CONCAT(문자열1, 문자열2, ...): 문자열 붙이기
- LOWER(문자열): 소문자로 변환
[카트에 담긴 음식 쌍, 카운트 수 조회하기]
*ddl script
CREATE TABLE CART_PRODUCTS
(
ID INT UNSIGNED PRIMARY KEY,
CART_ID INT,
NAME VARCHAR(20),
COST INT
);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1111, 30, 'banana', 3000);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1112, 30, 'mango', 3500);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1113, 30, 'salad', 4000);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1114, 31, 'fish', 7000);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1115, 31, 'pinut', 1000);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1116, 31, 'pinut', 1000);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1117, 32, 'banana', 3000);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1118, 32, 'icecream', 1500);
INSERT INTO CART_PRODUCTS (ID, CART_ID, NAME, COST) VALUES (1119, 33, 'juice', 2200);
* 위와 같은 CART_PRODUCTS 테이블이 존재할 때, 각 카트에 담긴 음식 쌍과 CART_ID, 해당 카트에 담긴 음식 쌍의 카운트 수를 조회하시오.
1. 카트에 담긴 음식 쌍 조회하기
SELECT CP1.ID, CP1.CART_ID, CP1.NAME, CP2.NAME
FROM CART_PRODUCTS CP1 INNER JOIN CART_PRODUCTS CP2 ON CP1.CART_ID = CP2.CART_ID
WHERE CP1.ID > CP2.ID
ORDER BY CP1.CART_ID;
2. (최종) 카트에 담긴 음식 쌍, 카운트 수, 카트 아이디 조회하기
SELECT CP1.CART_ID
, CP1.NAME AS 'NAME1'
, CP2.NAME AS 'NAME2'
, COUNT(*) AS 'COUNT'
FROM CART_PRODUCTS CP1 INNER JOIN CART_PRODUCTS CP2 ON CP1.CART_ID = CP2.CART_ID
WHERE CP1.ID > CP2.ID
GROUP BY CP1.CART_ID, CP1.NAME, CP2.NAME
ORDER BY CP1.CART_ID;
반응형
'code review > sql' 카테고리의 다른 글
[MySQL] HackerRank : New Companies Solution (0) | 2021.12.20 |
---|---|
[MySQL] LeetCode : Combine Two Tables Solution (0) | 2021.12.20 |
[MySQL] JOIN 정리 (INNER JOIN, LEFT/RIGHT JOIN, OUTER JOIN) (0) | 2021.12.02 |
[MySQL] 프로그래머스 코딩 테스트 - 동명 동물 수 찾기 (GROUP BY 사용) (0) | 2021.12.02 |
[MySQL] 코딩 테스트 기본 문법 정리 (0) | 2021.12.02 |
Comments