WITH RECURSIVE number_sequence(HOUR) AS ( SELECT 0 UNION ALL SELECT HOUR + 1 FROM number_sequence WHERE HOUR < 23 ) select HOUR, 0 as COUNT from number_sequence -- 1. HOUR, COUNT 테이블 생성해서 HOUR 0-23, COUNT 0으로 값 채워넣는 쿼리 where HOUR not in (select cast(DATE_FORMAT(DATETIME, '%H') as signed) as HOUR FROM ANIMAL_OUTS) -- 2. 1에서 생성한 테이블에서 ANIMAL_OUTS테이블에서 시간대별 COUNT 값 있는부분 제외(not in) union SELECT cast..
SELECT USER_ID, PRODUCT_ID FROM ONLINE_SALE GROUP BY USER_ID, PRODUCT_ID having count(*) >1 -- PRODUCT_ID가 두번이상 나온 USER_ID 출력 ORDER BY USER_ID, PRODUCT_ID desc 조회한다. USER_ID와 PRODUCT_ID를 ONLINE_SALE 테이블에서 PRODUCT_ID가 두번이상 나온 USER_ID를 출력한다. USER_ID를 기준으로 오름차순 정렬하고 USER_ID가 같다면 PRODUCT_ID로 내림차순 정렬한다.
SELECT CAR_TYPE, count(*) as CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS like '%통풍시트%' or OPTIONS like '%열선시트%' or OPTIONS like '%가죽시트%' GROUP BY CAR_TYPE ORDER BY CAR_TYPE 선택한다. CAR_TYPE과, 전체 count 값을 CARS로 CAR_RENTAL_COMPANY_CAR테이블에서 조건은 OPTIONS컬럼에 '통풍시트', '열선시트', '가죽시트' 중 하나 이상이 포함된 CAR_TYPE을 기준으로 그룹짓는다. CAR_TYPE을 기준으로 오름차순 정렬한다.
SELECT i.INGREDIENT_TYPE, sum(f.TOTAL_ORDER) as TOTAL_ORDER from FIRST_HALF f left join ICECREAM_INFO i on f.FLAVOR = i.FLAVOR group by i.INGREDIENT_TYPE order by f.TOTAL_ORDER 조회한다. ICECREAM_INFO테이블에 INGREDIENT_TYPE컬럼과, FIRST_HALF테이블에 TOTAL_ORDER컬럼의 합계를 TOTAL_ORDER로 FIRST_HALF테이블에 FLAVOR컬럼을 기준으로 ICECREAM_INFO테이블에 FLAVOR컬럼과 일치하는 레코드만 LEFT JOIN ICECREAM_INFO테이블에 INGREDIENT_TYPE컬럼을 기준으로 그룹짓는다. FIR..
SELECT DATE_FORMAT(DATETIME, '%H') as HOUR, count(*) as COUNT FROM ANIMAL_OUTS where DATE_FORMAT(DATETIME, '%H:%i') between '09:00' and '19:59' group by HOUR order by HOUR; 조회한다. DATE_FORMAT(DATETIME, '%H')을 HOUR로, 전체 count 값을 COUNT로 ANIMAL_OUTS테이블에서 DATE_FORMAT(DATETIME, '%H:%i')이 '09:00'과 '19:59' 사이인 HOUR를 기준으로 그룹짓는다. HOUR를 기준으로 오름차순 정렬한다.