테이블에 데이타가 순차적으로 들어갑니다.
table1
a b
1 1
2 1
3 1
4 0
5 0
6 1
7 1
8 0
9 0
10 0
11 1
.
.
.
100 0
table1에 데이타가 위와 같이 들어있다면 a 는 순차적으로 증가하는 값이구요..
b는 1,0 으로 사용여부의 플래그 입니다. 1: 사용 , 0: 미사용
뽑고싶은 결과는
4 ~ 5
8 ~ 10
같이 지금 사용되지 않은 범위를 구하고 싶습니다.
쿼리로 가능할까요?
아래 구헌수님이 좋은 쿼리를 알려 주셨습니다.
그런데 레코드 수가 전체 40만개에다가 조건에 맞는게 7만개가 넘으니 응답없이 게속 도네요.. 1분정도 지나서 결국 Kill....
select concat(min(a), ' ~ ' , max(a)) as rslt_valu
from (
select a, (select sum(b) from table1 ia where ia.a <= a.a) as sum_valu
from table1 a
where a.b = 0
) x
group by x.sum_valu;
|