본문 바로가기

분류 전체보기33

[SQL] 가격대 별 상품 개수 구하기(CASE WHEN, 산술 ) 문제 풀이 1 : case when - 조건부 로직을 처리하기 위해 사용한다. - 조건에 따라 로직의 결과를 다르게 반환할 수 있다. CASE WHEN 조건1 THEN '반환 값1' WHEN 조건2 THEN '반환 값2' ELSE 'WHEN 조건에 해당이 안 될 경우 반환값' END AS 별칭 - ELSE가 존재하면 모든 조건에 해당하지 않는 경우 ELSE의 결과 값을 반환 - ELSE가 없고, 모든 조건에 해당하지 않는 경우 NULL을 반환 SELECT CASE WHEN price >= 10000 AND price = 20000 AND price = 30000 AND price < 40000 .. 2023. 10. 2.
[SQL] 입양시각 구하기(2) (WITH RECURSIVE, GROUP BY) 참조 https://horang98.tistory.com/10 https://dbaant.tistory.com/22 WITH ? - 이름을 가진 SubQuery를 정의한 후 사용하는 구문으로 메모리 상 가상의 테이블을 저장할 때 사용한다. WITH RECURSIVE 구문 WITH RECURSIVE 임시 테이블명(cte) AS ( SELECT 초기값 AS 초기값이름 UNION ALL #필수 적용, 조건을 적는다. SELECT 반복 행위 FROM 테이블명 WHERE 반복을 멈추는 조건 ) WITH구문 WITH 임시 테이블명(cte) AS( SELECT 초기값 AS 이름 # 기본 select와 동일하게 불러올 값 UNION ALL SELECT 값 FROM 어떤 테이블 # 어떤 테이블의 행 수 만큼 반복됩니다... 2023. 9. 29.
[SQL] 입양 시각 구하기(1) (GROUP BY) 문제 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 풀이 SELECT HOUR(DATETIME) AS HOUR, COUNT(HOUR(DATETIME)) AS COUNT FROM ANIMAL_OUTS WHERE HOUR(DATETIME) BETWEEN 9 AND 20 GROUP BY HOUR(DATETIME) ORDER BY HOUR(DATETIME) - HOUR를 사용해 DATETIME에서 시간 값을 가져온다. - HOUR(DATETIME) 값을 COUNT 한다. - WHERE로 조건 값인 9시에서 20시 까지 - GROUP BY.. 2023. 9. 28.
[SQL] 성분으로 구분한 아이스크림 총 주문량 (GROUP BY) 문제 상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요. 이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정해주세요. 입력 예시 결과 예시 풀이 재료 타입을 그룹으로 묶어서 GROUP BY, 계산해서 나타내는 값은 SELECT에 연산자를 넣어서 작성해주면 된다. SELECT B.INGREDIENT_TYPE AS INGREDIENT_TYPE, SUM(A.TOTAL_ORDER) AS TOTAL_ORDER FROM FIRST_HALF A JOIN ICECREAM_INFO B ON A.FLAVOR = B.FLAVOR GROUP BY INGREDIENT_TYPE ORDER BY TOTAL_ORDER; 2023. 9. 28.