SELECT COUNT(order_id) FROM orders;
->์ฃผ๋ฌธ๊ฑด์๊ฐ ๊ณ ๊ฐ์ ์ค๋ณต์ด ์์์ ์์ง๋ง ์ ์ฒด ์ฃผ๋ฌธ ๊ฑด์์ด๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํ์ง ์๊ฒ ์ต๋๋ค
SELECT COUNT(DISTINCT(user_id)) FROM orders;
->1๋ฒ ๋ฌธ์ ์์ ๊ณ ๋ คํ์ง ์์๋ ๊ฒ์ ๊ณ ๋ คํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ ์๋ฅผ ์นด์ดํธ ํ์์ต๋๋ค.
ON์ ์ฌ์ฉํด์ join
SELECT B.product_name, COUNT(DISTINCT A.order_id) F FROM order_products__prior A LEFT JOIN products B ON A.product_id = B.product_id GROUP BY 1;
USING์ ์ฌ์ฉํด์ join
SELECT B.product_name, COUNT(DISTINCT A.order_id) F FROM order_products__prior A LEFT JOIN products B USING (product_id) GROUP BY 1;
USING๊ณผ JOIN์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น์?
๋ ํ ์ด๋ธ๊ฐ์ ํ๋์ ์ด๋ฆ์ด ๊ฐ์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์ ๋ ํ ์ด๋ธ์product_id
๊ฐ ๊ฐ๊ธฐ ๋๋ฌธ์ USING์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY F_1st DESC) rnk FROM (SELECT product_id, SUM(case when add_to_cart_order = 1 then 1 ELSE 0 END) F_1st FROM order_products__prior GROUP BY product_id) A LIMIT 10) B LEFT JOIN products C ON B.product_id = C.product_id ORDER BY rnk ;
- ์ค๋ช
์์ ์ฟผ๋ฆฌ๋ ํฌ๊ฒ 3๊ฐ๋ก ๋๋์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY F_1st DESC) rnk FROM (SELECT product_id, SUM(case when add_to_cart_order = 1 then 1 ELSE 0 END) F_1st FROM order_products__prior GROUP BY product_id) A LIMIT 10) B
์์ ์ฟผ๋ฆฌ๋
product_id
์ด๊ณผadd_to_cart_order
์ด์ ์ ํํ๊ณproduct_id
๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ 10๊ฐ๋ง ๊ฐ์ง๊ณ ์ค๊ฒ ๋ฉ๋๋ค.
LEFT JOIN products C ON B.product_id = C.product_id
1๋ฒ์ ํตํด์ ๋์จ ํ ์ด๋ธ๊ณผ productsํ ์ด๋ธ์
product_id
๋ฅผ ํตํด์ JOIN์ ํฉ๋๋ค.
ORDER BY rnk
์ ๋ ฌ์ rnk๊ธฐ์ค์ผ๋ก ํฉ๋๋ค.
ORDER BY
์ ์ ์ฌ์ฉํ์ฌ ํ์ ์ ๋ ฌํ ๋ค์ ๊ฐ ํ์ ๊ณ ์ ํ ๋ฒํธ๋ฅผ ํ ๋นํฉ๋๋ค.SELECT order_hour_of_day, COUNT(DISTINCT order_id) F FROM orders GROUP BY order_hour_of_day ORDER BY F DESC;
orders ํ ์ด๋ธ์์
order_hour_of_day
๋ฅผ ๊ทธ๋ฃน์ผ๋ก ํ๊ณ
order_id
์์ ์ค๋ณต์ ์ ๊ฑฐํ ์๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ ํฉ๋๋ค.