대장균의 크기에 따라 분류하기 2
- PERCENT_RANK()
- 백분율 순위를 계산, 현재 행 값에 대해 0~1 사이의 상대값을 리턴
select a.ID,
case WHEN a.percent <= 0.25 THEN 'CRITICAL'
WHEN a.percent <= 0.5 THEN 'HIGH'
WHEN a.percent <= 0.75 THEN 'MEDIUM'
else 'LOW' end COLONY_NAME
from
(select ID,
percent_rank() over(order by SIZE_OF_COLONY desc) percent
from ECOLI_DATA)
a
order by 1
특정 세대의 대장균 찾기 (4LV 💁😂)
- 자식테이블이랑 부모테이블 조인을 할 때 inner조인을 해서 풀었어야 했음
- 1세대는 무조건 부모가 null이기 때문에 이 조건을 추가해서 했어야 했음
첫번째 풀이
select c.aId as ID
from
(select a.ID aId,
a.PARENT_ID aPid,
b.ID bId,
b.PARENT_ID bPid
from ECOLI_DATA a
left join ECOLI_DATA b on a.PARENT_ID = b.ID
)
c left join ECOLI_DATA d on c.bPid = d.ID
where aPid is null
order by 1
두번째 풀이
select c.aId as ID
from
(select a.ID aId,
a.PARENT_ID aPid,
b.ID bId,
b.PARENT_ID bPid
from ECOLI_DATA a
inner join ECOLI_DATA b on a.PARENT_ID = b.ID
)
c inner join ECOLI_DATA d on c.bPid = d.ID
where d.PARENT_ID is null
order by ID asc
'SQL' 카테고리의 다른 글
SQL 총연습 (2) (0) | 2024.12.31 |
---|---|
SQL 총연습 (1) (1) | 2024.12.24 |
SELECT 연습(3) (1) | 2024.12.19 |
SELECT 연습(2) (2) | 2024.12.18 |
SELECT 연습(1) (0) | 2024.12.17 |