๋ชฉ์ฐจ
SELECT 5 / 30 * 100
FROM dual
;

1. ๋ฐฑ๋ถ์จ ๊ณ์ฐ์
๊ตฌํ๋ ค๋ ์ปฌ๋ผ์ ์ ์ฒด ์ปฌ๋ผ๊ฐ์๋ก ๋๋ ๋ค 100์ ๊ณฑํ๋ค.
์ค์ SQL(cubrid ์ฌ์ฉ)
SELECT CASE WHEN A.HOUSE_TY_SECD = '1' THEN '๋ค๊ฐ๊ตฌ'
WHEN A.HOUSE_TY_SECD = '2' THEN '๋น๋ผ'
WHEN A.HOUSE_TY_SECD = '3' THEN '์ํํธ'
WHEN A.HOUSE_TY_SECD = '4' THEN '์คํผ์คํ
'
WHEN A.HOUSE_TY_SECD = '5' THEN '๋จ๋
'
WHEN A.HOUSE_TY_SECD = '6' THEN '๋ค์ธ๋'
WHEN A.HOUSE_TY_SECD = '7' THEN '์ฐ๋ฆฝ'
WHEN A.HOUSE_TY_SECD = '8' THEN '๊ธฐํ'
END AS houseType
, COUNT(A.HOUSE_TY_SECD) AS totalCnt
, CASE WHEN (SELECT count(*)
FROM BOARD
WHERE INFO_SECD = '30'
) = 0
THEN 0
ELSE ROUND(COUNT(A.HOUSE_TY_SECD) / CAST((SELECT count(*)
FROM BOARD
WHERE INFO_SECD = '30'
) AS float) * 100, 2)
END AS rate
FROM BOARD A
WHERE A.INFO_SECD = '30'
GROUP BY A.HOUSE_TY_SECD
;
ํจ์(RATIO_TO_REPORT())
SELECT
type,
COUNT(*) AS count,
ROUND(RATIO_TO_REPORT(COUNT(type)) OVER () * 100, 2) AS percentage
FROM
BOARD
GROUP BY
type;
๊ฐ์ธ ์คํฐ๋ ๊ธฐ๋ก์ ๋ฉ๋ชจํ๋ ๊ณต๊ฐ์ด๋ผ ํ๋ฆฐ์ ์ด ์์ ์ ์์ต๋๋ค.
ํ๋ฆฐ ์ ์์ ๊ฒฝ์ฐ ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค.
'IT > DataBase' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Oracle] ๋ช ์์ PIVOT ์์ด ํผ๋ฒ ๊ตฌํํ๊ธฐ-์ค๋ฌธ ์๋ต ๋ฐ์ดํฐ ์ ํ ์ฟผ๋ฆฌ (0) | 2025.10.25 |
|---|---|
| [MSQL] ROWNUM ์ญ์์ผ๋ก ๊ณ์ฐํ๋ SQL ๊ธฐ๋ฒ (1) | 2025.01.19 |
| [cubrid] ์๋ธ ์ฟผ๋ฆฌ ๋ณ์นญ ์ฌ์ฉ ์ ์ฃผ์์ (43) | 2024.01.13 |
| [Oracle] N๊ฐ์ํ๊น์ง ๋ ์ง ๊ตฌํ๊ธฐ (feat. Connect by level) (65) | 2023.12.03 |
| [DBMS] N:M(๋ค๋๋ค) ๊ด๊ณ์ผ ๋ ๋งคํ ํ ์ด๋ธ๋ก ๊ด๊ณ ํ์ฑ (62) | 2023.09.24 |
๋๊ธ