header-img
Info :
๋ฐ€๋„
denseยน
์žฅ๋ž˜ํฌ๋ง : ๋‹จ์œ„ ๋ถ€ํ”ผ ๋‹น ์งˆ๋Ÿ‰์ด ๋ณด๋‹ค ๋นฝ๋นฝํ•œ ์‚ฌ๋žŒ ๋˜๊ธฐ

 

 

 

02์›” 26์ผ์ž๋กœ ๋น…์ฟผ๋ฆฌ์— GROUP BY ALL ๋ฌธ๋ฒ•์ด ์ถ”๊ฐ€๋๋‹ค. ๊ธฐ์กด์—๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ฌถ๊ณ  ์‹ถ์œผ๋ฉด GROUP BY์— ์ปฌ๋Ÿผ์„ ์ง€์ •ํ•ด์ค˜์•ผ ํ–ˆ๋Š”๋ฐ, GROUP BY ALL ๋ฌธ๋ฒ•์˜ ์ถ”๊ฐ€๋กœ ์ด์ œ ๋น…์ฟผ๋ฆฌ๊ฐ€ SELECT ์ ˆ์—์„œ ๊ทธ๋ฃนํ™”ํ•  ํ‚ค๋ฅผ ์•Œ์•„์„œ ๋ฌถ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

 

 

๋ฌถ๋Š” ์กฐ๊ฑด์€ ๋‹จ์ˆœํ•œ๋ฐ, ์ง‘๊ณ„ ํ•จ์ˆ˜๋‚˜ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์™ธ ๋ช‡ ๊ฐ€์ง€ ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์ง€์ •ํ•œ ๋ถˆ๊ฐ€ ํ˜•ํƒœ ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ปฌ๋Ÿผ์€ ๋‹ค ๊ทธGROUP BY์— ํฌํ•จ์‹œํ‚ค๋Š” ์‹์ด๋‹ค. ์ด ๋•Œ ์ƒ๊ธฐ ์กฐ๊ฑด๋“ค์„ ์ œ์™ธํ•˜๊ณ  ๋‚œ ํ›„, ๋‚จ์€ SELECT ํ•ญ๋ชฉ ์ค‘ ๊ทธ๋ฃนํ™” ๋ถˆ๊ฐ€ํ•œ ์œ ํ˜•์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

 

 

๋‹ค์Œ ์˜ˆ์ œ์—์„œ ์ฟผ๋ฆฌ๋Š” first_name๊ณผ last_name ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”๋œ๋‹ค. total_points๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜ ๊ฐ’์ด๋ฏ€๋กœ ์ œ์™ธ๋๋‹ค.

 

WITH PlayerStats AS (
  SELECT 'Adams' as LastName, 'Noam' as FirstName, 3 as PointsScored UNION ALL
  SELECT 'Buchanan', 'Jie', 0 UNION ALL
  SELECT 'Coolidge', 'Kiran', 1 UNION ALL
  SELECT 'Adams', 'Noam', 4 UNION ALL
  SELECT 'Buchanan', 'Jie', 13)
  
SELECT SUM(PointsScored) AS total_points
  		, FirstName AS first_name
  		, LastName AS last_name
FROM PlayerStats
GROUP BY ALL;

 

/*--------------+------------+-----------+
 | total_points | first_name | last_name |
 +--------------+------------+-----------+
 | 7            | Noam       | Adams     |
 | 13           | Jie        | Buchanan  |
 | 1            | Kiran      | Coolidge  |
 +--------------+------------+-----------*/

 

 

๋‹ค์Œ ์˜ˆ์ œ ์—ญ์‹œ ์ฟผ๋ฆฌ๋Š” first_name๊ณผ last_name ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”๋œ๋‹ค. total_points๋Š” ์œˆ๋„์šฐ ํ•จ์ˆ˜ ๊ฐ’์ด๋ฏ€๋กœ ์ œ์™ธ๋๋‹ค.

 

WITH PlayerStats AS (
  SELECT 'Adams' as LastName, 'Noam' as FirstName, 3 as PointsScored UNION ALL
  SELECT 'Buchanan', 'Jie', 0 UNION ALL
  SELECT 'Coolidge', 'Kiran', 1 UNION ALL
  SELECT 'Adams', 'Noam', 4 UNION ALL
  SELECT 'Buchanan', 'Jie', 13)
  
SELECT COUNT(*) OVER () AS total_people
  		, FirstName AS first_name
  		, LastName AS last_name
FROM PlayerStats
GROUP BY ALL;

 

/*--------------+------------+-----------+
 | total_people | first_name | last_name |
 +--------------+------------+-----------+
 | 3            | Noam       | Adams     |
 | 3            | Jie        | Buchanan  |
 | 3            | Kiran      | Coolidge  |
 +--------------+------------+-----------*/

 

 

์—ฌ๋Ÿฌ SELECT ํ•ญ๋ชฉ์ด FROM ์ ˆ์˜ ๋™์ผํ•œ ๋ถ€๋ถ„์„ ์ฐธ๊ณ ํ•œ๋‹ค๋ฉด ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์žฅ ์ง์ ‘์ ์œผ๋กœ ์ง€์ •ํ•œ ํ•˜๋‚˜๋งŒ GROUP BY์˜ ๋Œ€์ƒ์ด ๋œ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ์—์„œ coordinates์˜ ๋‘ ๊ตฌ์„ฑ ์š”์†Œ์ธ Values.x์™€ Values.y๊ฐ€ ์ด๋ฏธ ์ง์ ‘ ๊ฒฝ๋กœ๋กœ ์ง€์ •๋ผ ์žˆ๋Š” ์ƒํƒœ์ด๋ฏ€๋กœ coordinates ์ปฌ๋Ÿผ์€ GROUP BY์—์„œ ์ œ์™ธ๋๋‹ค.

 

WITH Values AS (
  SELECT 1 AS x, 2 AS y
  UNION ALL SELECT 1 AS x, 4 AS y
  UNION ALL SELECT 2 AS x, 5 AS y
)

SELECT Values.x AS x_coordinate
  	, Values.y AS y_coordinate
  	, [Values.x, Values.y] AS coordinates
FROM Values
GROUP BY ALL

 

/*--------------+--------------+-------------+
 | x_coordinate | y_coordinate | coordinates |
 +--------------+--------------+-------------+
 | 1            | 4            | [1, 4]      |
 | 1            | 2            | [1, 2]      |
 | 2            | 5            | [2, 5]      |
 +--------------+--------------+-------------*/

 

 

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL