Subquery 로 해결이 될 것 같군요.
select t1.name,t1.group,
(select count(*) from table_name t2 where t2.group=t1.group) as cnt
from table_name
order by cnt desc, name asc;
이런 구문으로 해결할수 있지 않을까요. 해보지 않았습니다. 테스트 해 보시기 바랍니다. :-)
>>어떤생각 님께서 쓰시길<<
:: 역시 더는 어떤 생각이 안나는군요. ^^
::
:: 제가 원하는 것은 다음과 같은 데이타가 있을때
::
:: name group
:: ==============
:: abc1 a
:: abc2 b
:: abc3 b
:: abc4 c
:: abc5 a
:: abc6 b
:: abc7 b
:: abc8 b
:: abc9 a
:: abc10 b
:: abc11 b
:: abc12 b
::
:: 이렇게 소팅하는 것이죠.
:: name groupname
:: ==============
:: abc2 b
:: abc3 b
:: abc6 b
:: abc7 b
:: abc8 b
:: abc10 b
:: abc11 b
:: abc12 b
:: abc5 a
:: abc1 a
:: abc9 a
:: abc4 c
::
:: 다들 보시면 아시겠지만 간단히 설명하면 그룹별로 소팅을 하는데 그룹의 count가 높은순으로요.
:: 그러니까 order by groupname 하면 그룹별로는 되지만 그룹에 속한 레코드의 갯수별로는 소팅이 안되
:: 지요.
:: 굳이 하려고 하면
:: 먼저 "select groupname, count(*) as group_count from tablename group by groupname order by group
:: _count desc" 해서 레코드셋을 만들고
:: 결과 레코드를 이용하여 순서대로 groupname에 대하여 되풀이 하면서 "select name from tablename whe
:: re groupname = '" & rsDB.groupname & "' order by name" 하면 되긴 하는데...
:: 이러면 select를 몇번이나 실행해야 되서... 쩝
::
:: 뭔가 방법이 있을 것 같은데, 역시 허접이라 잘 모르겠군요.
::
:: 방법을 아시는 분은 답변 부탁드립니다.
::
|