티스토리 뷰
select a.* from (
select tmp.*,
rank() over (partition by mail_ymd order by (send+blocks) desc) as rank
from (
select mail_ymd, org_nm,
sum(i_normal_sum+o_normal_sum) send,
sum(i_block_sum+o_block_sum) blocks,
sum(i_block_control+o_block_control) control,
sum(i_block_filter+o_block_filter) filters,
sum(i_block_spam+o_block_spam) spam,
sum(i_block_user+o_block_user) users,
sum(i_block_virus+o_block_virus) virus
from ar_day_mail
where mail_ymd between '20070106' AND '20070107'
group by org_nm, mail_ymd
)tmp
)a
where rank<11
이쿼리는 오라클에서 날짜별로 상위 10개의 데이터를 검색하는것입니다.
mysql을 사용해서 이와 같은 내용의 결과가 나오도록 하고 싶은데요
알려주세요
-----------------------------------------------------------------------
rank 함수는 mysql에서는 지원하지 않습니다.
따라서 서브쿼리에서 order by 로 정렬을 해준다음
Limit 10 으로 해서 잘라오는 수밖엔 없습니다.
'데이타베이스 > Mysql' 카테고리의 다른 글
Mysql 기본참고 사항 (0) | 2008.06.22 |
---|---|
Mysql - 튜닝 (최적화) (0) | 2008.06.22 |
Mysql explain (0) | 2008.06.22 |
Mysql 서버 5.0의 신기능 (0) | 2008.06.22 |
Mysql Explain 정보보는법 (0) | 2008.06.22 |
- Total
- Today
- Yesterday