dt - ๋งค์ถ ๋ ์ง (์: 2018-01-01)
pu - ๊ฒฐ์ ๊ณ ๊ฐ ์
revenue_daily - ํด๋น ๋ ์ง์ ๋งค์ถ์ก
arppu - ๊ฒฐ์ ๊ณ ๊ฐ 1์ธ ๋น ํ๊ท ๊ฒฐ์ ๊ธ์ก
์ฃผ์ํ ์ ์ ์ฃผ๋ฌธ ๊ณ ๊ฐ์ด ํด๋น ๋ ์ง์ ์ค๋ณต๋ ์ ์๋ค๋ ์ ์ด๋ค. -> DISTINCT ์ฌ์ฉํด์ผํจ
SELECT
DATE(a.order_purchase_timestamp) dt,
COUNT(DISTINCT a.customer_id) pu,
SUM(payment_value) revenue_daily,
ROUND(SUM(payment_value)/COUNT(DISTINCT a.customer_id), 2) arppu
FROM olist_orders_dataset a
JOIN olist_order_payments_dataset b ON a.order_id = b.order_id
WHERE dt >= '2018-01-01'
GROUP BY dt
ORDER BY dt
SELECT
mentee.employee_id AS mentee_id,
mentee.name AS mentee_name,
mentor.employee_id AS mentor_id,
mentor.name AS mentor_name
FROM
(
SELECT employee_id, name, department
FROM employees
WHERE join_date BETWEEN '2021-10-01' AND '2022-03-31'
) AS mentee
LEFT JOIN
(
SELECT employee_id, name, department
FROM employees
WHERE join_date <= '2019-12-31'
) AS mentor
ON mentee.department != mentor.department
ORDER BY mentee_id ASC, mentor_id ASC
SELECT
order_date,
COUNT(DISTINCT(CASE WHEN category='Furniture' THEN order_id END)) AS furniture,
ROUND((COUNT (DISTINCT(CASE WHEN category='Furniture' THEN order_id END))+0.00) / (COUNT(DISTINCT(order_id))+0.00)*100, 2) AS furniture_pct
FROM records
GROUP BY order_date
HAVING COUNT(DISTINCT order_id) >= 10 AND furniture_pct>= 40
ORDER BY furniture_pct DESC;
WITH order_counts AS (
SELECT
order_date,
COUNT(DISTINCT order_id) AS total_orders,
COUNT(DISTINCT CASE WHEN category = 'Furniture' THEN order_id END) AS furniture_orders
FROM records
GROUP BY order_date
)
SELECT
order_date,
furniture_orders AS furniture,
ROUND(furniture_orders * 100.0 / total_orders, 2) AS furniture_pct
FROM order_counts
WHERE total_orders >= 10
AND (furniture_orders * 100.0 / total_orders) >= 40
ORDER BY furniture_pct DESC;