Post

โœ๐Ÿป programmers Lv2. MySQL ์™„๋ฃŒ(24.11.14)

64) ์—ฐ๋„๋ณ„ ๋Œ€์žฅ๊ท  ํฌ๊ธฐ์˜ ํŽธ์ฐจ ๊ตฌํ•˜๊ธฐ

1
2
3
4
5
SELECT YEAR(DIFFERENTIATION_DATE) AS 'YEAR',
        MAX(SIZE_OF_COLONY) OVER(PARTITION BY YEAR(DIFFERENTIATION_DATE)) - SIZE_OF_COLONY AS 'YEAR_DEV', 
        ID
FROM ECOLI_DATA
ORDER BY YEAR ASC, YEAR_DEV ASC;
  • OVER(PARTITION BY YEAR(DIFFERENTIATION_DATE)) : ๊ฐ ์—ฐ๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™” ํ•จ. -> 2019, 2020, 2021 ๋“ฑ

  • MAX(SIZE_OF_COLONY) OVER(PARTITION BY YEAR(DIFFERENTIATION_DATE)) - SIZE_OF_COLONY : ๊ฐ ๊ทธ๋ฃน ๋‚ด์—์„œ SIZE_OF_COLONY์˜ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•œ ๋’ค, SIZE_OF_COLONY๋กœ ๋นผ๊ธฐ.


65) ๋ถ€๋ชจ์˜ ํ˜•์งˆ์„ ๋ชจ๋‘ ๊ฐ€์ง€๋Š” ๋Œ€์žฅ๊ท  ์ฐพ๊ธฐ

1
2
3
4
5
6
7
SELECT A.ID, A.GENOTYPE AS 'GENOTYPE', B.GENOTYPE AS 'PARENT_GENOTYPE'
FROM ECOLI_DATA A
JOIN ECOLI_DATA B ON A.PARENT_ID = B.ID
WHERE (A.GENOTYPE & B.GENOTYPE) = B.GENOTYPE
ORDER BY A.ID ASC;

# A : ์ž์‹๊ฐœ์ฒด, B : ๋ถ€๋ชจ ๊ฐœ์ฒด

๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ ํ˜•์งˆ์„ 2์ง„์ˆ˜ ๋น„ํŠธ๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ๋ถ€๋ชจ ๊ฐœ์ฒด๋กœ๋ถ€ํ„ฐ ์œ ์ „๋œ ํ˜•์งˆ์„ ์ž์‹ ๊ฐœ์ฒด๊ฐ€ ๋ชจ๋‘ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ

  • ID: ๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ ๊ณ ์œ  ID.

  • PARENT_ID: ๋ถ€๋ชจ ๋Œ€์žฅ๊ท  ๊ฐœ์ฒด์˜ ID (์ตœ์ดˆ ๊ฐœ์ฒด์˜ ๊ฒฝ์šฐ NULL).
  • SIZE_OF_COLONY: ๋Œ€์žฅ๊ท ์˜ ํฌ๊ธฐ(์ด๋ฒˆ ๋ฌธ์ œ์—๋Š” ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค).
  • DIFFERENTIATION_DATE: ๋Œ€์žฅ๊ท ์ด ๋ถ„ํ™”๋œ ๋‚ ์งœ.
  • GENOTYPE: ๋Œ€์žฅ๊ท ์˜ ํ˜•์งˆ(์ •์ˆ˜ ๊ฐ’์œผ๋กœ ์ฃผ์–ด์ง).

ํ˜•์งˆ์€ GENOTYPE = 5๋ผ๋ฉด 2์ง„์ˆ˜๋กœ 101์ด๋ฉฐ ์ด๋Š” 1๋ฒˆ๊ณผ 3๋ฒˆ์˜ ํ˜•์งˆ์„ ๊ฐ€์ง„๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.

GENOTYPE = 8์ด๋ผ๋ฉด 2์ง„์ˆ˜ 1000์œผ๋กœ ์ด๋Š” 4๋ฒˆ ํ˜•์งˆ์„ ๊ฐ€์ง„๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ

๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ -> ์ž์‹ ๊ฐœ์ฒด๊ฐ€ ๋ถ€๋ชจ ๊ฐœ์ฒด์˜ ๋ชจ๋“  ํ˜•์งˆ์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์„ ๋•Œ, ํ•ด๋‹น ์ž์‹ ๊ฐœ์ฒด์˜ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•จ. ์ฆ‰, ๋ถ€๋ชจ ๊ฐœ์ฒด์˜ ํ˜•์งˆ์ด ์ž์‹ ๊ฐœ์ฒด์˜ ํ˜•์งˆ์— ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ.

-> ๋ถ€๋ชจ GENOTYPE = 1, ์ž์‹ GENOTYPE = 3์ธ ๊ฒฝ์šฐ, 3 & 1 = 1์ด๋ฏ€๋กœ ์ž์‹์€ ๋ถ€๋ชจ์˜ ํ˜•์งˆ์„ ๋ชจ๋‘ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Œ.

ON A.PARENT_ID = B.ID: ์ž์‹ ๊ฐœ์ฒด(A)์˜ PARENT_ID์™€ ๋ถ€๋ชจ ๊ฐœ์ฒด(B)์˜ ID๋ฅผ ์—ฐ๊ฒฐํ•ด, ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ํ˜•์„ฑํ•จ.

This post is licensed under CC BY 4.0 by the author.