๐Ÿ“ ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ธฐ์ถœ ์œ ํ˜•

1. ๋ถ€์„œ๋ณ„ ์ตœ๊ณ  ๊ธ‰์—ฌ์ž ์ฐพ๊ธฐ

SELECT e.*
FROM employees e
WHERE (department, salary) IN (
    SELECT department, MAX(salary)
    FROM employees
    GROUP BY department
);

2. ์ˆœ์œ„ ๋งค๊ธฐ๊ธฐ (RANK)

SELECT 
    name, 
    salary,
    RANK() OVER (ORDER BY salary DESC) AS rank
FROM employees;

3. ๋ˆ„์  ํ•ฉ๊ณ„

SELECT 
    name,
    salary,
    SUM(salary) OVER (ORDER BY hire_date) AS cumulative_sum
FROM employees;

4. ๋‚ ์งœ ํ•จ์ˆ˜

SELECT 
    NOW(),                          -- ํ˜„์žฌ ๋‚ ์งœ์‹œ๊ฐ„
    CURDATE(),                      -- ํ˜„์žฌ ๋‚ ์งœ
    DATE_ADD(NOW(), INTERVAL 7 DAY), -- 7์ผ ํ›„
    DATEDIFF(NOW(), hire_date)      -- ๋‚ ์งœ ์ฐจ์ด
FROM employees;

5. ๋ฌธ์ž์—ด ํ•จ์ˆ˜

SELECT 
    CONCAT(first_name, ' ', last_name),  -- ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ
    SUBSTRING(phone, 1, 3),              -- ๋ถ€๋ถ„ ๋ฌธ์ž์—ด
    LENGTH(name),                        -- ๊ธธ์ด
    UPPER(email),                        -- ๋Œ€๋ฌธ์ž
    REPLACE(phone, '-', '')              -- ์น˜ํ™˜
FROM employees;

goal: ๊ฐ ๊ฐœ๋…์„ ๋ฐ˜๋“œ์‹œ ์ง์ ‘ SQL๋กœ ์‹คํ–‰ํ•ด๋ณด๊ธฐ