'sql랭킹'에 해당되는 글 2건

  1. 2008.11.14 응용 1 - Rank, 랭킹 뽑기 by 잠수콩
  2. 2008.11.13 MS-SQL 랭킹(순위) 매기기 by 잠수콩

아래와 같이 응용할 수도 있다.

select name,
 (
 select count(*)+1
 from
  (
  select name, count(*) as p_cnt
  from TEST_LIST
  group by name
  ) p_rank
 where p_rank.p_cnt > p2_rank.p_cnt
 ) as rank,
 (
  select count(*) from TEST_LIST where name= p2_rank.name
 ) as t_count
from
 (
 select name, count(*) as p_cnt
 from TEST_LIST
 group by name
 ) p2_rank
order by rank

   rank  name   t_count
   1등  철수  10 개
   2등  영희  5 개
   2등  미칠  5 개
   3등   앙마  1 개




저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩


Table명 : TEST_POINT_LIST, Column명:name, regdate
 앙마 2008-10-11
 철수  2008-10-11
 영희  2008-10-12
 철수  2008-10-13
 진칠  2008-10-13
 영희  2008-10-11
 철수  2008-10-12
 진칠  2008-10-13

예를 들자면...
댓글 많이 달기 이벤트를 진행했다고 치고.
아뒤(이름), 날짜가 기본으로 저장될테고, 댓글등은 위 테이블에서 무시함.

이럴 경우 누가 댓글을 많이 달았나? 등수를 매기는 쿼리문.
단, 같은 댓글 갯수는 동일 등수로, 그 하위 등수는 그 아래부터

select name,
 (
 select count(*)+1
 from
  (
  select name, count(*) as p_cnt
  from TEST_POINT_LIST
  group by name
  ) p_rank
 where p_rank.p_cnt > p2_rank.p_cnt
 ) rank
from
 (
 select name, count(*) as p_cnt
 from TEST_POINT_LIST
 group by name
 ) p2_rank
--where name='철수'
order by rank

 name  rank
 철수  1
 진칠  2
 영희  2
 앙마  4
   
 where절만 나오도록(위 쿼리문에서 --을 빼면)  
 철수

이렇게 나옵니다. 여러가지 경우로 사용가능할 수도 있죠.

예를 들면,
미팅 : 나에게 프로포즈 많이 한 사람 순위
선물 : 나에게 선물 많이 준 사람 순위 등등
학원 : 결석한 사람 순위
저작자 표시 비영리 변경 금지
신고
Posted by 잠수콩