[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€๊ฒฉ์ด ์ œ์ผ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ | MySQL, ์˜ค๋ผํด
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ๊ฐ€๊ฒฉ์ด ์ œ์ผ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐํ’€์ด 1์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ํ’€์ด์ž…๋‹ˆ๋‹ค.MySQLSELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICEFROM FOOD_PRODUCTWHERE PRICE = (SELECT MAX(PRICE) PRICEFROM FOOD_PRODUCT);์˜ค๋ผํดSELECT *FROM FOOD_PRODUCTWHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT);ํ’€์ด 2๊ฐ€๊ฒฉ์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ , ์ตœ์ƒ์œ„ ๋กœ์šฐ๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ํ’€์ด์ž…๋‹ˆ๋‹ค.MySQLSELECT * FROM FOOD_PRODUCTORDER BY PRICE DESC LIMIT 1;์˜ค๋ผํดSELECT * FROM ( SELECT * FROM FOOD..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 3์›”์— ํƒœ์–ด๋‚œ ์—ฌ์„ฑ ํšŒ์› ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ | MySQL
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ3์›”์— ํƒœ์–ด๋‚œ ์—ฌ์„ฑ ํšŒ์› ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐํ’€์ดSELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') DATE_OF_BIRTHFROM MEMBER_PROFILEWHERE DATE_FORMAT(DATE_OF_BIRTH, '%m') = '03' AND TLNO IS NOT NULL AND GENDER = 'W'ORDER BY MEMBER_ID ASC;3์›”์— ํƒœ์–ด๋‚œ ์—ฌ์„ฑ์„ ๊ตฌํ•  ๋•Œ, DATE_FORMAT ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.[mysql] DATE_FORMAT - ๋‚ ์งœ ํ˜•์‹ ์„ค์ •MONTH ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์žก์€ ๋ฌผ๊ณ ๊ธฐ์˜ ํ‰๊ท  ๊ธธ์ด ๊ตฌํ•˜๊ธฐ | MySQL
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ์žก์€ ๋ฌผ๊ณ ๊ธฐ์˜ ํ‰๊ท  ๊ธธ์ด ๊ตฌํ•˜๊ธฐํ’€์ดSELECT ROUND(AVG(IFNULL(LENGTH, 10)), 2) AVERAGE_LENGTHFROM FISH_INFO;์˜ค๋ผํด์—์„œ NVL ๋Œ€์‹  MySQL์—์„œ๋Š” IFNULL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ROUND ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด n๋ฒˆ์งธ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฌผ๊ณ ๊ธฐ ์ข…๋ฅ˜ ๋ณ„ ๋Œ€์–ด ์ฐพ๊ธฐ | MySQL
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ๋ฌผ๊ณ ๊ธฐ ์ข…๋ฅ˜ ๋ณ„ ๋Œ€์–ด ์ฐพ๊ธฐํ’€์ดSELECT FI.ID, FN.FISH_NAME, FI.LENGTHFROM FISH_INFO FI JOIN FISH_NAME_INFO FN ON FI.FISH_TYPE = FN.FISH_TYPEWHERE (FI.FISH_TYPE, FI.LENGTH) IN ( SELECT FISH_TYPE, MAX(LENGTH) FROM FISH_INFO GROUP BY FISH_TYPE)ORDER BY FI.ID;WHERE ์กฐ๊ฑด์— FISH_TYPE๊นŒ์ง€ ๋„ฃ์–ด์ค˜์•ผ ์ •ํ™•ํ•˜๊ฒŒ ์ฟผ๋ฆฌ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์›ํ•˜๋Š”๋งŒํผ์˜ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ (์˜ค๋ผํด, MySQL)
ยท
๐Ÿ“ Coding Test/SQL
์˜ค๋ผํดROWNUM์„ ํ™œ์šฉํ•˜์—ฌ ์›ํ•˜๋Š”๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํŠน์ •ํ•œ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ ํ›„, ์›ํ•˜๋Š”๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.์˜ˆ์ œ - ์ƒ์œ„ n๊ฐœ ๋ ˆ์ฝ”๋“œSELECT NAMEFROM ( SELECT * FROM ANIMAL_INS ORDER BY DATETIME)WHERE ROWNUM MySQLLIMIT๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์›ํ•˜๋Š”๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ์ œ - ๊ฐ€์žฅ ํฐ ๋ฌผ๊ณ ๊ธฐ 10๋งˆ๋ฆฌ ๊ตฌํ•˜๊ธฐSELECT ID, LENGTHFROM FISH_INFOWHERE LENGTH >= 10ORDER BY LENGTH DESC, IDLIMIT 10;
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋Œ€์—ฌ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์€ ์ž๋™์ฐจ๋“ค์˜ ์›”๋ณ„ ๋Œ€์—ฌ ํšŸ์ˆ˜ ๊ตฌํ•˜๊ธฐ | ์˜ค๋ผํด
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ๋Œ€์—ฌ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์€ ์ž๋™์ฐจ๋“ค์˜ ์›”๋ณ„ ๋Œ€์—ฌ ํšŸ์ˆ˜ ๊ตฌํ•˜๊ธฐํ’€์ดSELECT TO_NUMBER(TO_CHAR(START_DATE, 'MM')) MONTH, CAR_ID, COUNT(*) RECORDSFROM CAR_RENTAL_COMPANY_RENTAL_HISTORYWHERE CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE TO_CHAR(START_DATE, 'YYYYMM') >= '202208' AND TO_CHAR(START_DATE, 'YYYYMM') = 5 ) AND TO_CHAR(START_DATE, 'YYYYMM') >= '202208' AND TO_CHAR(START_DATE, 'YYYYMM') ..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2) | ์˜ค๋ผํด
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2)ํ’€์ดSELECT A.HOUR, COUNT(B.DATETIME) COUNTFROM (SELECT LEVEL - 1 AS HOUR FROM DUAL CONNECT BY LEVEL COUNT(*)์„ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด๋„ 1๋กœ ์ถœ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, COUNT(B.DATETIME)์œผ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.0๋ถ€ํ„ฐ 23์„ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด CONNECT BY(๊ณ„์ธต์  ์ฟผ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.์ฐธ๊ณ ์˜ค๋ผํด ์ˆœ๋ฒˆ ์ฑ„๋ฒˆ CONNECT BY LEVEL ํ™œ์šฉํ•˜๊ธฐ[Oracle] ์˜ค๋ผํด CONNECT BY ์‚ฌ์šฉ๋ฒ• (๊ณ„์ธตํ˜• ์ฟผ๋ฆฌ)
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋…„, ์›”, ์„ฑ๋ณ„ ๋ณ„ ์ƒํ’ˆ ๊ตฌ๋งค ํšŒ์› ์ˆ˜ ๊ตฌํ•˜๊ธฐ | ์˜ค๋ผํด
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„ ๊ฐ€์žฅ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์กฐํšŒํ•˜๊ธฐํ’€์ดSELECT TO_CHAR(B.SALES_DATE, 'YYYY') YEAR, TO_NUMBER(TO_CHAR(B.SALES_DATE, 'MM')) MONTH, GENDER, COUNT(DISTINCT A.USER_ID) USERSFROM USER_INFO A JOIN ONLINE_SALE B ON A.USER_ID = B.USER_IDWHERE GENDER IS NOT NULLGROUP BY TO_CHAR(B.SALES_DATE, 'YYYY'), TO_NUMBER(TO_CHAR(B.SALES_DATE, 'MM')), GENDERORDER BY 1, 2, 3;1์ž๋ฆฌ ์ˆซ์ž์˜ ๋‹ฌ์˜ ๊ฒฝ์šฐ ์•ž์˜ 0์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด, TO_NUMBER๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.์ค‘๋ณต๋˜๋Š” ์œ ์ €๊ฐ€..
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„ ๊ฐ€์žฅ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์กฐํšŒํ•˜๊ธฐ | ์˜ค๋ผํด
ยท
๐Ÿ“ Coding Test/SQL
๋ฌธ์ œ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„ ๊ฐ€์žฅ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์กฐํšŒํ•˜๊ธฐํ’€์ดSELECT CATEGORY, PRICE MAX_PRICE, PRODUCT_NAMEFROM FOOD_PRODUCTWHERE (CATEGORY, PRICE) IN ( SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT WHERE CATEGORY IN ('๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ ') GROUP BY CATEGORY)ORDER BY MAX_PRICE DESC;์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.