SQL-2

Eddieยท2025๋…„ 4์›” 30์ผ
post-thumbnail

๐Ÿ“˜ [SQL] 2์ฃผ์ฐจ - ์ง‘๊ณ„ ํ•จ์ˆ˜, ๊ทธ๋ฃน ์—ฐ์‚ฐ, ์ •๋ ฌ๊นŒ์ง€

โœ… ํ•™์Šต ํ‚ค์›Œ๋“œ

  • SQL ์ˆซ์ž ์—ฐ์‚ฐ ๋ฐ ์ง‘๊ณ„ ํ•จ์ˆ˜
  • GROUP BY๋กœ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์—ฐ์‚ฐ
  • ORDER BY๋กœ ๊ฒฐ๊ณผ ์ •๋ ฌ
  • ์‹ค์Šต ๊ธฐ๋ฐ˜ ์ฟผ๋ฆฌ ์ž‘์„ฑ ํ๋ฆ„

โœ๏ธ ๋‚˜๋งŒ์˜ ์ •๋ฆฌ

๐Ÿ“Œ 1์ฃผ์ฐจ ๋ณต์Šต

SELECT ์ปฌ๋Ÿผ
FROM ํ…Œ์ด๋ธ”
WHERE ์กฐ๊ฑด
  • ์กฐ๊ฑด ์—ฐ์‚ฐ์ž: =, <>, <, >, IN, BETWEEN, LIKE, AND, OR, NOT

โž• ์ˆซ์ž ์—ฐ์‚ฐ๊ณผ ์ง‘๊ณ„ ํ•จ์ˆ˜

  • SQL์—์„œ๋„ +, -, *, / ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • ์ž์ฃผ ์“ฐ๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜:

    SUM(์ปฌ๋Ÿผ)   -- ์ดํ•ฉ
    AVG(์ปฌ๋Ÿผ)   -- ํ‰๊ท 
    COUNT(์ปฌ๋Ÿผ) -- ๊ฐœ์ˆ˜
    MIN(์ปฌ๋Ÿผ)   -- ์ตœ์†Œ๊ฐ’
    MAX(์ปฌ๋Ÿผ)   -- ์ตœ๋Œ€๊ฐ’

โœ… ์˜ˆ์‹œ

SELECT SUM(price) AS sum_price,
       AVG(price) AS avg_price
FROM food_orders;

โœ… ๊ณ ๊ฐ ์ˆ˜ ์„ธ๊ธฐ (์ค‘๋ณต ์ œ๊ฑฐ)

SELECT COUNT(DISTINCT customer_id) AS num_customers
FROM food_orders;

๐Ÿงช WHERE ์ ˆ + ์ง‘๊ณ„ ํ•จ์ˆ˜ ์‹ค์Šต

  1. 30,000์› ์ด์ƒ ์ฃผ๋ฌธ ๊ฑด์ˆ˜
SELECT COUNT(order_id) AS count_of_orders
FROM food_orders
WHERE price >= 30000;
  1. ํ•œ๊ตญ์Œ์‹ ํ‰๊ท  ์ฃผ๋ฌธ ๊ฐ€๊ฒฉ
SELECT AVG(price) AS average_price
FROM food_orders
WHERE cuisine_type = 'Korean';

๐Ÿงฉ GROUP BY๋กœ ๋ฒ”์ฃผ๋ณ„ ์—ฐ์‚ฐ

  • ์นดํ…Œ๊ณ ๋ฆฌ(์ปฌ๋Ÿผ)๋ณ„ ์ง‘๊ณ„ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
SELECT cuisine_type, SUM(price) AS total_price
FROM food_orders
GROUP BY cuisine_type;

โœ… ์Œ์‹์ ๋ณ„ ์ตœ๋Œ€ ์ฃผ๋ฌธ ๊ธˆ์•ก

SELECT restaurant_name, MAX(price) AS "์ตœ๋Œ€ ์ฃผ๋ฌธ๊ธˆ์•ก"
FROM food_orders
GROUP BY restaurant_name;

โœ… ๊ฒฐ์ œํƒ€์ž…๋ณ„ ๊ฐ€์žฅ ์ตœ๊ทผ ๊ฒฐ์ œ์ผ

SELECT pay_type AS "๊ฒฐ์ œํƒ€์ž…", MAX(date) AS "์ตœ๊ทผ ๊ฒฐ์ œ์ผ"
FROM payments
GROUP BY pay_type;

๐Ÿ”ƒ ORDER BY๋กœ ์ •๋ ฌ

  • ์ •๋ ฌ ๊ธฐ์ค€ ์ง€์ •
ORDER BY ์ปฌ๋Ÿผ๋ช… [DESC]  -- ๊ธฐ๋ณธ์€ ์˜ค๋ฆ„์ฐจ์ˆœ, DESC๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ

โœ… ์Œ์‹์ ๋ณ„ ์ตœ๋Œ€ ์ฃผ๋ฌธ๊ธˆ์•ก ๋‚ด๋ฆผ์ฐจ์ˆœ

SELECT restaurant_name, MAX(price) AS "์ตœ๋Œ€ ์ฃผ๋ฌธ๊ธˆ์•ก"
FROM food_orders
GROUP BY restaurant_name
ORDER BY MAX(price) DESC;

โœ… ๊ณ ๊ฐ ์ด๋ฆ„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

SELECT *
FROM customers
ORDER BY name;

๐Ÿ“š ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ์ 

  • SQL์—์„œ๋„ SUM, COUNT, AVG ๋“ฑ ์ง‘๊ณ„ํ•จ์ˆ˜๋Š” ์—‘์…€์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • GROUP BY์™€ ORDER BY ์กฐํ•ฉ์œผ๋กœ ๊ฐ•๋ ฅํ•œ ๋ฆฌํฌํŠธ ๊ฐ€๋Šฅ
  • DISTINCT๋กœ ์ค‘๋ณต ์ œ๊ฑฐํ•œ COUNT๋„ ๊ฐ€๋Šฅ

๐Ÿ”Ž ์ƒˆ ๊ธฐ๋Šฅ/๊ตฌ๋ฌธ

  • SUM, AVG, MIN, MAX, COUNT
  • GROUP BY, ORDER BY
  • COUNT(DISTINCT column)

๐ŸŽฏ ๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

  • 3์ฃผ์ฐจ: ํ…Œ์ด๋ธ” ๊ฐ„ JOIN ๋ฐฐ์šฐ๊ธฐ (๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ)
  • ์‹ค๋ฌด์—์„œ ๋งŽ์ด ์“ฐ๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ ์˜ˆ์Šตํ•˜๊ธฐ

๐ŸŽฏ ์ˆ™์ œ


select cuisine_type,
min(price) min_price,
max(price) max_price
from food_orders
group by cuisine_type
order by min(price) desc

profile
์ž˜ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€