Basic Select 2

Revising Aggregations - The Count Function

https://www.hackerrank.com/challenges/revising-aggregations-the-count-function/problem?isFullScreen=true

SELECT COUNT(ID)
FROM (
    SELECT *
    FROM CITY
    WHERE POPULATION>100000
)
----------------------------------------------------------------
SELECT COUNT(ID)
FROM CITY
WHERE POPULATION>100000;

๋‚œ ์™œ ์„œ๋ธŒ์ฟผ๋ฆฌ๊นŒ์ง€ ์ƒ๊ฐํ•œ๊ฑฐ์ง€..? ์•„๋ฌดํŠผ ์–ด๋ ต์ง€ ์•Š์€๋“ฏ

Revising Aggregations - The Sum Function

https://www.hackerrank.com/challenges/revising-aggregations-sum/problem?isFullScreen=true&h_r=next-challenge&h_v=zen

SELECT SUM(POPULATION)
FROM CITY
WHERE DISTRICT = 'California';

๋‚œ์ด๋„ ์ˆ˜์ค€์ด....?

Revising Aggregations - Averages

SELECT AVG(POPULATION)
FROM CITY
WHERE District='California';

ํ—ˆํ—ˆ ์ด์ง€ํ•˜๋„ค์š”

Average Population

SELECT TRUNC(AVG(POPULATION))
FROM CITY

์†Œ์ˆ˜์ ์œผ๋กœ ๋‚˜๋‰˜์–ด์ง€๋Š” ํ‰๊ท ์„ ๋‹จ์ˆœํ•˜๊ฒŒ ์ •์ˆ˜๋กœ ๋ฒ„๋ฆผํ•˜๋Š” ๋ฌธ์ œ - TRUNC์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์ž

TRUNC ํ•จ์ˆ˜๋Š” ๋‚ ์งœ๋‚˜ ์ˆซ์ž๋ฅผ ์ž๋ฅด๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

์ด๋ฒˆ์— ์ˆซ์ž์˜ ๊ฒฝ์šฐ์—๋Š” TRUNC(์ˆซ์ž, ์ž˜๋ผ๋ฒ„๋ฆด์ž๋ฆฌ์ˆ˜)

๊ทธ๋ž˜์„œ TRUNC(AVG(POPULATION), 3) ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” 3๋ฒˆ์งธ ์ž๋ฆฌ์ˆ˜๊นŒ์ง€ ์‚ญ์ œํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

Japan Population

๊ทธ๋ƒฅ Sum ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ์ œ

SELECT SUM(POPULATION)
FROM CITY
WHERE COUNTRYCODE = 'JPN';

Population Density Difference

population์ด ๊ฐ€์žฅ ํฐ ๋„์‹œ์˜ ๊ฐ’ - ๊ฐ€์žฅ ์ž‘์€ ๋„์‹œ์˜ ๊ฐ’

SELECT MAX(POPULATION) - MIN(POPULATION)
FROM CITY;

The Blunder

์Œ.. ๋ˆ์„ ์ž‘์„ฑํ•ด์„œ ๋„ฃ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, 0ํ‚ค๊ฐ€ ์•ˆ๋จน๋Š”๊ฑธ ๋‹ค ๊ธฐ์ž…ํ•˜๊ณ  ๋‚˜์„œ ๊นจ๋‹ณ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์›๋ณธ์˜ ํ‰๊ท  - 0์„ ๋บ€ ์ˆซ์ž๋“ค์˜ ํ‰ ๊ท ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ •์ˆ˜๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•ด๋ผ

SELECT CEIL(AVG(SALARY) - AVG(REPLACE(SALARY, 0, '')))
FROM EMPLOYEES;

์˜ค์šฐ์•ผ....

CEIL : ์–ด์ œํ–ˆ๋˜ TRUNC์ด ์ž๋ฅด๋Š” ์—ญํ• , ์ฆ‰ ๋ฒ„๋ฆผ์ด์˜€๋‹ค๋ฉด ceil์€ ์ •์ˆ˜๋กœ ์˜ฌ๋ฆผํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ธ๋ฐ ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ๊ฑด ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ์—์„œ ์˜ฌ๋ฆผํ•˜๋Š” ํ•จ์ˆ˜๋กœ ์›ํ•˜๋Š” ์ž๋ฆฌ์ˆ˜๋ฅผ ๋งค๊ธธ ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค

REPLACE : ํŠน์ • ๋ฌธ์ž์—ด์„ ์น˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ

  • REPLACE(์ปฌ๋Ÿผ, ์ฐพ์„๋ฌธ์ž, ๋ณ€ํ™˜ํ• ๋ฌธ์ž)

Top Earners

์ง์›

์›”๊ธ‰ * ์›”์ˆ˜ ํ•˜๋ฉด ํ˜„์žฌ๊นŒ์ง€ ๋ฐ›์€ ์ž„๊ธˆํŒŒ์•…ํ•˜๊ณ  ๊ฐ€์žฅ ๋†’์€ ์ž„๊ธˆ์„ ์ถœ๋ ฅํ•˜๊ณ  ๊ทธ ์ž„๊ธˆ์„ ๋ฐ›๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ

SELECT *
FROM(
    SELECT MONTHS*SALARY, COUNT(MONTHS*SALARY) 
    FROM EMPLOYEE
    GROUP BY MONTHS*SALARY
    ORDER BY MONTHS*SALARY DESC
)
WHERE ROWNUM=1;

์•„์นจ์— ์ถœ๊ทผํ•ด์„œ ๊ผญ ๋ณต์Šตํ•˜๊ธฐ!

Weather Observation Station 2

LAT_N์„ ๋‹ค ๋”ํ•˜๊ณ , LONG_W์„ ๋‹ค ๋”ํ•˜๊ณ  ์†Œ์ˆ˜์  2์งธ์  ๊นŒ์ง€ ๋‚˜์˜ค๋„๋ก ์ถœ๋ ฅํ•˜๋ผ

SELECT ROUND(SUM(LAT_N), 2), ROUND(SUM(LONG_W), 2)
FROM STATION

ROUND ํ•จ์ˆ˜๋Š” ์ •์ˆ˜์˜ ๋ฐ˜์˜ฌ๋ฆผ์„ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๊ณ ,

ROUND(์›ํ•˜๋Š” ๊ฐ’, ๋ช‡์ž๋ฆฌ๊นŒ์ง€ ๋‚จ์„๊ฑด์ง€)

์š”๋Ÿฐ ์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

Weather Observation Station 13

38.7880<LAT_N<137.2345 ์‚ฌ์ด์— ์žˆ๋Š” ๊ฐ’๋“ค์˜ ํ•ฉ ๊ตฌํ•˜๊ณ  4์ž๋ฆฌ ์ˆ˜๋กœ ์ž˜๋ผ๋ผ

SELECT TRUNC(SUM(LAT_N), 4)
FROM STATION
WHERE LAT_N > 38.7880 AND LAT_N < 137.2345;

Weather Observation Station 14

LAT_N ํ•ญ๋ชฉ์—์„œ 137.2345๋ณด๋‹ค ์ž‘์€ ๊ฒƒ๋“ค ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ 4์ž๋ฆฌ์ˆ˜๊นŒ์ง€ ์ž˜๋ผ

SELECT *
FROM (
    SELECT TRUNC(LAT_N, 4)
    FROM STATION
    WHERE LAT_N < 137.2345
    ORDER BY LAT_N DESC
)
WHERE ROWNUM=1;

Weather Observation Station 15

LATN์ด 137.2345๋ณด๋‹ค ์ž‘์€ ๊ฒƒ๋“ค ์ค‘์— ๊ฐ€์žฅ ํฐ ์ˆ˜์˜ LONG_W๋ฅผ 4์ž๋ฆฌ๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•ด์„œ ์ถœ๋ ฅํ•˜๋ผ

SELECT *
FROM (
    SELECT ROUND(LONG_W, 4)
    FROM STATION
    WHERE LAT_N < 137.2345
    ORDER BY LAT_N DESC
)
WHERE ROWNUM=1;

Weather Observation Station 16

Query the smallest Northern Latitude (LAT_N) from STATION that is greater than . Round your answer to decimal places.

SELECT ROUND(MIN(LAT_N), 4)
FROM STATION
WHERE LAT_N>38.7780;

Weather Observation Station 17

Query the Western Longitude (LONGW) where the smallest Northern Latitude(LAT_N) in STATION is greater than 38.7780. Round your answer to 4 decimal places.

SELECT *
FROM(
    SELECT ROUND(LONG_W, 4)
    FROM STATION
    WHERE LAT_N > 38.7780
    ORDER BY LAT_N
)
WHERE ROWNUM=1;

Weather Observation Station 18

๋งจํ•ดํƒ„ ๊ฑฐ๋ฆฌ - |a-c| + |b-d|๋กœ ๊ตฌํ•˜๊ณ  ์†Œ์ˆ˜์  4์ž๋ฆฌ๊นŒ์ง€๋งŒ ์ถœ๋ ฅํ•˜๋ผ

SELECT ROUND(
    ABS(MIN(LAT_N)-MAX(LAT_N)) + 
    ABS(MIN(LONG_W)-MAX(LONG_W))
, 4)
FROM STATION;

์ ˆ๋Œ€๊ฐ’์„ ํ‘œํ˜„ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋Š” ABS๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ ˆ๋Œ€๊ฐ’์„ ํ‘œํ˜„ํ•œ๋‹ค.

Weather Observation 19

Euclidean Distance = sqrt( (a-b)^2 +(c-d)^2 )๋กœ ๊ตฌํ•˜๊ณ  ์†Œ์ˆ˜์  4์ž ๊นŒ์ง€๋งŒ ์ถœ๋ ฅ

SELECT ROUND(
    SQRT(
        POWER(MIN(LAT_N) - MAX(LAT_N), 2) +
        POWER(MIN(LONG_W) - MAX(LONG_W), 2)
    )
, 4)
FROM STATION;

SQRT(ํ•„๋“œ)๋ฅผ ํ†ตํ•ด์„œ ๋ฃจํŠธ๋ฅผ ๋งค๊ฒจ์ฃผ๋Š” ํ•จ์ˆ˜

POWER(ํ•„๋“œ, ์ˆซ์ž)๋ฅผ ํ†ตํ•ด์„œ ํ•„๋“œ๋ฅผ ์ˆซ์ž๋งŒํผ ์ง€์ˆ˜ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ํ•จ์ˆ˜

Weather Observation 20

LAT_N์˜ ์ค‘์•™๊ฐ’์„ ์†Œ์ˆ˜์  4์ž๋ฆฌ ๊นŒ์ง€๋งŒ ์ถœ๋ ฅ

SELECT ROUND(
    MEDIAN(LAT_N), 4
)
FROM STATION;

์˜ค๋ผํด์—์„œ๋Š” ์ค‘์•™๊ฐ’์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” MEDIAN ํ•จ์ˆ˜๊ฐ€ ์กด์žฌ

Last updated

Was this helpful?