SQL 공부

데이터를 받고 파악하는 법, 시간 데이터 파악

데이터분석가_안졍 2023. 12. 26. 20:28
728x90

select count(*) from prod_order po; #3431

select count(DISTINCT order_no) from prod_order po; #3215 차이가 나넵 업자인가 한방에 많이 사네

SELECT min(order_dt) as dt_start, max(order_dt) as dt_end from prod_order po ; #날자 데이터 언제부터 언제까지인지 봐봐야지.

SELECT DISTINCT product_name from prod_order po ; #A만 있구먼

SELECT DISTINCT `options` from prod_order po ;

SELECT min(qty), round(avg(qty),3), max(qty) from prod_order po ; #양을 볼때 최소값과 평균, 최대값도 한 번 봐보자.

select * from prod_order po where qty >= 2;

SELECT count(*) from prod_order po WHERE qty >= 2; # 32

SELECT count(DISTINCT order_no) from prod_order po WHERE qty >= 2; # 동일한 옵션 2개 이상 산 주문건이 몇 건인지 30

SELECT DISTINCT `options`, count(*), qty from prod_order po WHERE qty >=2 group by `options` order by count(*) desc ;

 

 

SELECT order_dt from prod_order po limit 5;

SELECT YEAR(order_dt) from prod_order po limit 5;

SELECT YEAR(order_dt) as `year` from prod_order po limit 5;

SELECT YEAR(order_dt), count(*) from prod_order po group by YEAR(order_dt);

SELECT YEAR(order_dt),month(order_dt), count(*), sum(qty) from prod_order po group by YEAR(order_dt), month(order_dt ) ;

SELECT DATE_FORMAT(order_dt, '''%Y-%m') as yyyymm from prod_order po limit 5;

SELECT DATE_FORMAT(order_dt, '''%Y-%m') as yyyymm, count(*) from prod_order po group by yyyymm;

SELECT order_dt ,DAYOFWEEK(order_dt) from prod_order po limit 5;

#주중 (2,3,4,5,6)

SELECT count(*) from prod_order po where DAYOFWEEK(order_dt)BETWEEN 2 and 6;

# 주말 (7,1)

SELECT count(*) from prod_order po where DAYOFWEEK(order_dt) in (7,1);

SELECT count(*) from prod_order po ;

SELECT count(DISTINCT dayofweek(order_dt)) from prod_order po ;

# 시간대별 주문 건수 집계

SELECT hour(order_dt) as H, count(*) from prod_order po group by H order by count(*) desc ;

 

select LENGTH(order_dt) from prod_order po limit 5;

select DISTINCT LENGTH(order_no) from prod_order po ;

 

SELECT DISTINCT left(`options`, 3) from prod_order po;

SELECT DISTINCT left(`options`, 3) as a, count(*) from prod_order po group by a;

SELECT DISTINCT left(`options`, 3) as a, count(*) from prod_order po where year(order_dt)=2023 group by a;

 

SELECT DISTINCT r(`options`, 3) as a, count(*) from prod_order po where year(order_dt)=2023 group by a;

SELECT DISTINCT trim(right(`options`, 2)) as a, count(*) from prod_order po group by a;