시간 | 내용 |
---|---|
09:00-10:00 | 코드가타 |
10:00-10:30 | 오전 스크럼 |
10:30-12:00 | 코드가타 진행하며 |
궁금했던 부분 찾아보고 정리 | |
12:00-13:00 | 점심식사 |
13:00-14:00 | ADsP 1주차 강의 수강 |
14:00-15:00 | SQL 라이브 세션 |
15:00-16:00 | 아티클 스터디 |
16:00-17:00 | 직무 조사 결과 공유 |
17:00-18:00 | 발표 PPT 만들기 |
18:00-19:00 | 저녁식사 |
19:00-20:00 | 튜터 직무 세션 |
20:00-20:30 | 저녁 스크럼 |
20:30-21:00 | TIL 작성 |
21:00-23:00 | 부족한 부분 보충 |
SELECT order_id
, product_id
, DATE_FORMAT(out_date, '%Y-%m-%d') out_date
, CASE
WHEN out_date IS NULL THEN '출고미정'
WHEN out_date > '2022-05-01' THEN '출고대기'
ELSE '출고완료'
END "출고여부"
FROM food_order
ORDER BY 1 ASC;
WITH문
/*WITH으로 풀기*/
WITH fo AS (
SELECT order_id
, product_id
, DATE_FORMAT(out_date, '%Y-%m-%d') out_date
FROM food_order
)
SELECT fo.*
, CASE
WHEN out_date <= '2022-05-01' THEN '출고완료'
WHEN out_date > '2022-05-01' THEN '출고대기'
ELSE '출고미정'
END "출고여부"
FROM fo
ORDER BY order_id;
/*서브쿼리로 풀기*/
SELECT fo.*
, CASE
WHEN out_date <= '2022-05-01' THEN '출고완료'
WHEN out_date > '2022-05-01' THEN '출고대기'
ELSE '출고미정'
END "출고여부"
FROM (
SELECT order_id
, product_id
, DATE_FORMAT(out_date, '%Y-%m-%d') out_date
FROM food_order
) fo
ORDER BY order_id;
SELECT SUBSTRING(product_code,1,2) category
, COUNT(*) products
FROM product
GROUP BY 1
ORDER BY 1 ASC;
SELECT LEFT(PRODUCT_CODE, 2) CATEGORY
, COUNT(*) PRODUCTS
FROM PRODUCT
GROUP BY CATEGORY
ORDER BY 1;
SELECT animal_type
, COUNT(*) AS 'count'
FROM animal_ins
GROUP BY 1
HAVING animal_type = 'Cat' OR animal_type = 'Dog'
ORDER BY 1 ASC;
생각의 흐름
IN을 사용해 HAVING절을 더 간단하게 표현할 수 있음: HAVING ANIMAL_TYPE IN ('Cat', 'Dog')
SELECT CONVERT(SUBSTRING(datetime, 12, 2), SIGNED) 'HOUR'
, COUNT(*) 'COUNT'
FROM animal_outs
GROUP BY 1
HAVING HOUR BETWEEN 9 AND 19
ORDER BY 1;
생각의 흐름
추가
DATE_FORMAT(DATETIME, '%H')
을 사용하면 더 간단CAST()
사용해도 됨참고하면 좋을 다른 풀이
select cast(HOUR as decimal) HOUR
,count(*) COUNT
from (
SELECT *
, substr(datetime, 12, 2) HOUR
from animal_outs
) a
where HOUR >= 9 and HOUR <= 19
group by 1
order by 1
SELECT case
when substr(DATETIME, 12, 13) = 09 then 9
when substr(DATETIME, 12, 13) = 10 then 10
when substr(DATETIME, 12, 13) = 11 then 11
when substr(DATETIME, 12, 13) = 12 then 12
when substr(DATETIME, 12, 13) = 13 then 13
when substr(DATETIME, 12, 13) = 14 then 14
when substr(DATETIME, 12, 13) = 15 then 15
when substr(DATETIME, 12, 13) = 16 then 16
when substr(DATETIME, 12, 13) = 17 then 17
when substr(DATETIME, 12, 13) = 18 then 18
when substr(DATETIME, 12, 13) = 19 then 19
end HOUR
, count(*) COUNT
from ANIMAL_OUTS
group by 1
having HOUR between 9 and 19
order by 1
데이터 직군(데이터 분석가, 데이터 과학자, 데이터 엔지니어, BA, PM, Growth Hacker,...) 하는 일이 다 비슷한 것 같은데
퍼포먼스 마케터
growth hacker
데이터 엔지니어
퍼포먼스 마케터