๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/Database

[Database] HeidiSQL ๊ทธ๋ฃน ํ•จ์ˆ˜ (์ง‘ํ•ฉ ํ•จ์ˆ˜)

by ITyranno 2023. 11. 27.
728x90
๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋ฅผ ํƒ๊ตฌํ•ฉ์‹œ๋‹ค.

 

 

 

 

 

 

[  ๊ทธ๋ฃน ํ•จ์ˆ˜  ]

 

- count() : ํ–‰์˜ ๊ฐฏ์ˆ˜
- avg() : ํ‰๊ท 
- max() : ์ตœ๋Œ€๊ฐ’
- min() : ์ตœ์†Œ๊ฐ’
- sum() : ํ•ฉ๊ณ„

 

-- ์ผ๋ฐ˜ ์กฐ๊ฑด : Where์ ˆ ์‚ฌ์šฉ 
-- ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด : Group By ~ Having ์ ˆ ์‚ฌ์šฉ
-- Group By ์ ˆ : ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๊ณ ์ž ํ•˜๋Š” ์ปฌ๋Ÿผ๋ช… or ์ผ๋ฐ˜ํ•จ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•œ ์ปฌ๋Ÿผ ์ง€์ •
-- Having์ ˆ
--    : ๊ทธ๋ฃนํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์กฐ๊ฑด(๋น„๊ต ์—ฐ์‚ฐ์ž) ์‚ฌ์šฉ
--    : ๊ทธ๋ฃน ์กฐ๊ฑด์ด ์—†์œผ๋ฉด Having์ ˆ์€ ์‚ฌ์šฉ ์•ˆ ํ•ด๋„ ๋จ
--       (Group By ์ ˆ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
-- ๊ทธ๋ฃน์— ๋Œ€ํ•œ ๋ฌธ์ œ๋กœ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•
--    : ~๋ณ„๋กœ ์กฐํšŒ ๋ผ๋Š” ๊ฐœ๋…์  ์šฉ์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด Group By๋ฅผ ์‚ฌ์šฉ

 

 

<์ฒ˜๋ฆฌ ์ˆœ์„œ>
 1. Select
 2. FROM ํ…Œ์ด๋ธ”
 3. WHERE ~ And
 4. GROUP by
 5. Having
 6. SELECT ๋’ค์— ์ปฌ๋Ÿผ๋“ค
 7. ORDER By
 


 <SQL ์ž‘์„ฑ>
 Select ์ปฌ๋Ÿผ๋“ค
 From ํ…Œ์ด๋ธ”
 Where ์ผ๋ฐ˜์กฐ๊ฑด
 And   ์ผ๋ฐ˜์กฐ๊ฑด
 Group By ๊ทธ๋ฃน์ปฌ๋Ÿผ
 Having ๊ทธ๋ฃน์กฐ๊ฑด
 Order By ์ •๋ ฌํ•  ์ปฌ๋Ÿผ๋“ค

 

 

 <Group By๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ๊ทœ์น™>
  - Group By ์ ˆ์— ์ œ์‹œ๋œ ์ปฌ๋Ÿผ๋“ค์€ ์›ํ˜• ๊ทธ๋Œ€๋กœ ์กฐํšŒํ•  ์ปฌ๋Ÿผ์— ์ œ์‹œ
  - Select ์ ˆ ๋’ค์— ์ปฌ๋Ÿผ ๋˜๋Š” ์ผ๋ฐ˜ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์กฐํšŒํ•˜๊ณ ์ž ํ•˜๋Š” ์ปฌ๋Ÿผ๋“ค์€
    Group By ์ ˆ์— ์›ํ˜• ๊ทธ๋Œ€๋กœ ์ œ์‹œ๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ (์›์น™ ์ƒ)
  - ์ปฌ๋Ÿผ ๋’ค์— ๋ณ„์นญ(as)๋Š” Group By ์ ˆ์—๋Š” ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ(์›์น™ ์ƒ)

 

 

 

[  ์กฐ๊ฑด  ]

 

-- ํšŒ์› ์ทจ๋ฏธ๋ณ„๋กœ count ํ•˜๊ธฐ

 

 

[  ์ž‘์„ฑ ์ฝ”๋“œ  ]

 

 

-- ํšŒ์› ์ทจ๋ฏธ๋ณ„๋กœ count ํ•˜๊ธฐ
SELECT mem_like, count(nvl(mem_like,0)) AS cnt_like
FROM member
-- ๊ทธ๋ฃนํ™”ํ•  ์ปฌ๋Ÿผ ์ง€์ •
-- group by์— ์ง€์ •ํ•œ ์ปฌ๋Ÿผ or ์ผ๋ฐ˜ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๊ฒฝ์šฐ,
-- : select์ ˆ์— ์˜ˆ์˜์ƒ ๋„ฃ์–ด์ฃผ๊ธฐ
GROUP BY mem_like;

 

 

 

[  ๊ฒฐ๊ณผ  ]

 

 

 

 

 

[  ์กฐ๊ฑด  ]

 

-- [๋ฌธ์ œ]
-- ํšŒ์›์˜ ์„ฑ๋ณ„ count๊ฐ’์„ ์กฐํšŒํ•ด ์ฃผ์„ธ์š”
-- ์กฐํšŒ ์ปฌ๋Ÿผ : ํšŒ์›์„ฑ๋ณ„, count๊ฐ’ ์กฐํšŒํ•˜๊ธฐ

 

 

 

[  ์ž‘์„ฑ ์ฝ”๋“œ  ]

 

 

-- [๋ฌธ์ œ]
-- ํšŒ์›์˜ ์„ฑ๋ณ„ count๊ฐ’์„ ์กฐํšŒํ•ด ์ฃผ์„ธ์š”
-- ์กฐํšŒ ์ปฌ๋Ÿผ : ํšŒ์›์„ฑ๋ณ„, count๊ฐ’ ์กฐํšŒํ•˜๊ธฐ
SELECT if(MOD(SUBSTRING(mem_regno2, 1, 1), 2)>0, '๋‚จ', '์—ฌ') AS ํšŒ์›์„ฑ๋ณ„,
			count(if(MOD(SUBSTRING(mem_regno2, 1, 1), 2)>0, '๋‚จ', '์—ฌ')) AS ์ˆซ์ž
FROM member
GROUP BY if(MOD(SUBSTRING(mem_regno2, 1, 1), 2)>0, '๋‚จ', '์—ฌ');

SELECT if(MOD(SUBSTRING(mem_regno2, 1, 1), 2)>0, '๋‚จ', '์—ฌ') AS ํšŒ์›์„ฑ๋ณ„, 
			COUNT(mem_regno2) AS cnt
FROM member
GROUP BY SUBSTRING(mem_regno2, 1, 1)
ORDER BY cnt DESC;

 

 

 

 

[  ๊ฒฐ๊ณผ  ]

 

 

 

 

 

 

[  ์กฐ๊ฑด  ]

 

 

-- [๋ฌธ์ œ]
-- cart ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•ด์„œ ํšŒ์›๋ณ„๋กœ count ํ•ด์ฃผ์„ธ์š”, ์ตœ๋Œ€๊ฐ’, ํ•ฉ์‚ฐ

 

 

[  ์ž‘์„ฑ ์ฝ”๋“œ  ]

 

 

SELECT Cart_member, count(*) AS COUNT, MAX(cart_qty) AS max_qty,
		 SUM(cart_qty) AS sum_qty
FROM cart
GROUP BY Cart_member;

 

 

 

[  ๊ฒฐ๊ณผ  ]

 

 

 

 

 

 

 

 

 

[  ์กฐ๊ฑด  ]

 

-- [๋ฌธ์ œ]
-- ์ž„์˜ ํšŒ์›์ด 2005๋…„ 4์›” 1์ผ์— ์ƒํ’ˆ ํ•˜๋‚˜๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค.
-- ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋ฅผ ๋ฐœ๊ธ‰ํ•ด์•ผํ•ด์š”
-- ์‹ ๊ทœ ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋งŒ ์กฐํšŒํ•ด ์ฃผ์„ธ์š”

 

 

 

[  ์ž‘์„ฑ ์ฝ”๋“œ  ]

 

 

-- [๋ฌธ์ œ]
-- ์ž„์˜ ํšŒ์›์ด 2005๋…„ 4์›” 1์ผ์— ์ƒํ’ˆ ํ•˜๋‚˜๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค.
-- ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋ฅผ ๋ฐœ๊ธ‰ํ•ด์•ผํ•ด์š”
-- ์‹ ๊ทœ ์ฃผ๋ฌธ๋ฒˆํ˜ธ๋งŒ ์กฐํšŒํ•ด ์ฃผ์„ธ์š”

 

 

 

[  ๊ฒฐ๊ณผ  ]

 

 

 

 

 

 

 

[  ์กฐ๊ฑด  ]

 

-- [๋ฌธ์ œ]
-- ์ƒํ’ˆํ…Œ์ด๋ธ”์—์„œ
-- ์ƒํ’ˆ๋ถ„๋ฅ˜๋ณ„๋กœ ์ƒํ’ˆ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ง‘๊ณ„ํ•ด์ฃผ์„ธ์š”
-- ์กฐํšŒ์ปฌ๋Ÿผ์€ ์ž์œ ๋กญ๊ฒŒ

 

 

[  ์ž‘์„ฑ ์ฝ”๋“œ  ]

 

SELECT Prod_lgu, COUNT(prod_id) AS cnt
FROM prod
GROUP BY Prod_lgu;

 

 

 

 

[  ๊ฒฐ๊ณผ  ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

loading