oracle 2

여러줄 나오는 쿼리를 한줄로 줄일때 Clob 이 대상이라면 다른 방법을 찾아 봐야..

select title, content, isrtid from tableA ; 상기 결과가 다음과 같을때.. 이걸 한 줄로 고쳐보고 있을 거다. titleA contentA isrtIdA titleB contentB isrtIdA titleC contentC isrtIdA titleD contentD isrtIdA .. 그러면 당연히 isrtid 로 group by 를 하고, max 와 decode 를 사용할 것인데.. 그렇다면 쿼리가 다음과 같이 된다. select isrtid, max(decode(title, 'titleA', content)) content1, max(decode(title, 'titleB', content)) content2, max(decode(title, 'titleC', co..

특정 화면에서 조건에 맞는 순위 목록 보여 주기

오늘 작업할 내용은 다소 복잡하다. 요건은 다음과 같다. 1. 순위 데이타 추출 및 노출 2. 특정 게시물에서만 노출 3. 특정 기간 동안만 노출 순위 데이타를 추출하려면 오라클 DB 쿼리 함수중 rank() over (order by ...) 라는 것을 이용한다. rank() 를 사용하면 1, 2, 2, 2, 5, 5, 7, .. 이런식으로 순위가 나오고.. dense_rank() 를 이용하면 1, 2, 2, 2, 3, 3, 4, ... 이런식으로 순위가 나온다. 여기서는 partition 옵션을 사용할 필요는 없다. 그런데 rank 함수는 튜닝을 해도 속도가 느릴 수밖에 없다. 이를 해결하려면 중간 테이블을 하나 두어서 순위 목록을 가져올 때는 중간 테이블에서 select 해 오고, 특정 조건에서 중..