์๋ ํ์ธ์ :D yunamom ์ ๋๋ค.
์ ๋ณด์ฒ๋ฆฌ ์ฐ์ ๊ธฐ์ฌ ์ค๊ธฐ๋ฌธ์ ๋ฅผ ์ฐ์ตํ๋ค๊ฐ ๋ฐ์ดํฐ์๋ ์ปฌ๋ผ์ 0์ผ๋ก ํ๊ธฐํ๋๋ฒ์ ์ ๋ฆฌํด๋๋ ค๊ณ ํฌ์คํ ํฉ๋๋ค.๐
๐์๋๋ ์ถ๋ ฅํด์ผํ๋ ํ๋ฉด์ ๋๋ค.
๋ณ์์ง์ญ | ๋ณ์์ง์ญ๋ช | ์ ์ข ์์ฝ๊ฑด์ |
10 | ์์ธ | 5 |
20 | ๋์ | 3 |
30 | ๋๊ตฌ | 2 |
40 | ๊ด์ฃผ | 0 |
์ดํฉ | 10 |
- ๋ณ์์ด ์๋ ์ง์ญ๋ณ๋ก ์ ์ข ์์ฝ๊ฑด์์ ํฉ์ ์ถ๋ ฅํจ.
- ๋ชจ๋ ๋ณ์์ ์ ์ข ์์ฝ๊ฑด์๋ฅผ ํฉ์ณ์ ์ดํฉ์ ์ถ๋ ฅํจ.
- (๋ณํ) ๊ธฐ์กด ๋ฌธ์ ๋ ๊ด์ฃผ์ง์ญ์ ๊ฒฝ์ฐ ์์ฝ๊ฑด์๊ฐ ์์ด ์ถ๋ ฅ์ ํ์ง ์์์ผ๋, ์์ฝ์ด ์๋ ๊ฒฝ์ฐ 0์ผ๋ก ํ๊ธฐํ์ฌ ์ถ๋ ฅํจ.
LEFT JOIN ์ผ๋ก ์ค๋ฅธ์ชฝ ๋ฐ์ดํฐ ๊ฐ์ด ์๋๋ผ๋ ์ผ์ชฝ ํ ์ด๋ธ ์ปฌ๋ผ์ ์ถ๋ ฅํ ์์๋ ์ฟผ๋ฆฌ๋ฌธ
์ฒ์์ count(*) ๋ก ํ์๋๋ ๋ฐ์ดํฐ๊ฐ ์๋๋ผ๋ 1์ด๋์์ ์ด๋ฐ๊ฒฝ์ฐ ๋ฐ์ดํฐ๊ฐ ์ ๋ง 1์ด ์๋๊ฒฝ์ฐ๋ ๊ฒน์ณ์ ์์ฃผ ๊ณค๋ํ๋ฐ
์ ๋ ธ๋ฌด 1์ 0์ผ๋ก ๋ฐ๊ฟ๋ ค๊ณ UNION ์ด๋ฉฐ OUTER JOIN..์ด๋ฉฐ ๋์ ํด๋ดค์ง๋ง 0์ด ๋์ค์ง์์๋ค.
๊ทธ๋ฐ๋ฐ ์ธ์ ๋ ๊ทธ๋ ๋ฏ!!!! ๋ต์ ๋ญ์ด๋ฆฌ ๊ฐ๋จํ๊ฐ ๊ทธ๋ฅ count(V.hospcode) ๋ฃ์ด์ฃผ๋ฉด ๋๋๊ฑฐ์๋ค. ํํํ ๋๋ฌด ๋ณต์กํ๊ฒ ์๊ฐํ๋๊ฑฐ ๊ฐ๋ค
SELECT
H.hospaddr,
DECODE(H.hospaddr,'10','์์ธ','20','๋์ ','30','๋๊ตฌ','๊ด์ฃผ')name,
NVL(count(V.hospcode),'0')cnt
FROM TBL_HOSP_202108 H
LEFT JOIN TBL_VACCRESV_202108 V
ON H.hospcode = V.hospcode
GROUP BY hospaddr
ORDER BY cnt DESC;
SELECT
H.hospaddr AS ๋ณ์์ง์ญ,
DECODE(H.hospaddr,'10','์์ธ','20','๋์ ','30','๋๊ตฌ','๊ด์ฃผ') AS ๋ณ์์ง์ญ๋ช
,
NVL(count(V.hospcode),'0') AS ์ ์ข
์์ฝ๊ฑด์
FROM TBL_HOSP_202108 H
LEFT JOIN TBL_VACCRESV_202108 V
ON H.hospcode = V.hospcode
GROUP BY hospaddr
ORDER BY ์ ์ข
์์ฝ๊ฑด์ DESC;
'DB > Oracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Oracle] ORDER BY NULL ๊ฐ ์ ๋ ฌํ๊ธฐ - NULLS FIRST, NULLS LAST (0) | 2022.04.14 |
---|---|
[Oracle] ROLLUP ์ดํฉ๊ณ ๊ตฌํ๊ธฐ (0) | 2022.03.25 |
[Oracle] sqlplus ํ๋ฉดํฌ๊ธฐ ์กฐ์ ํ๊ธฐ (1) | 2022.03.24 |
Oracle 11g XE Download - ์ค๋ผํด 11g XE ๋ค์ด๋ก๋๊ฒฝ๋ก (0) | 2022.03.19 |
[Oracle] ์ค๋ผํด UNION, UNION ALL ์ฌ์ฉ๋ฒ (0) | 2022.02.25 |