해당 컬럼값 조회 해서 제일 많은 지역수 가져오기 0 7 4,168

by nayha [2014.02.14 16:12:29]


테이블
번호 지역  조건
1    서울   1
2    서울   1
3    경기      1
4    경기      1
5    경남    1
6 경남    2
7 경남    2
8 경남    2

요런 데이타를 뽑고 싶습니다.

지역  건수 평균값
서울  2      40
경기  2     40
경남  1    20


아래 처럼 하니 자꾸 애러가 나네요 ;;
생각이 자꾸 꼬여서 질문 하러 왔습니당 답변 좀 부탁드려요

select  * FROM(
  (select count(no)  from 테이블 where  area ='서울') 
  ,(select count(no)  from 테이블 where area ='경기') 
)  where  조건 = 1 
by DarkBee [2014.02.14 16:55:03]
SELECT 지역
           , count (*)
    FROM t
 WHERE 조건 = 1
 GROUP BY 지역

by nayha [2014.02.14 16:59:02]
답변 감사합니다  ㅎㅎ

평균 퍼센티지 나오게 할 수도 있을까요?

select CAST(CAST(4 AS FLOAT)/CAST(20 AS FLOAT)*100 AS DECIMAL) 


by nayha [2014.02.14 17:09:20]
select CAST(CAST( (SELECT count(*) FROM 테이블 where 조건='1' GROUP BY 지역 )AS FLOAT)
/CAST(( SELECT count(*) FROM 테이블 where 조건='1' )AS FLOAT)*100 AS DECIMAL) as avg

이렇게 하니까 오류가 나오네요 

by DarkBee [2014.02.14 17:10:14]
SELECT 지역
     , count (*)
     , ratio_to_report ( count(*) ) over () * 100
  FROM t
 WHERE 조건 = 1
 GROUP BY 지역 

by nayha [2014.02.14 17:14:15]

DarkBee  님 답변 감사합니다. MSSQL 이라서 ratio_to_report  요 함수가 안먹나봐요 

MSSQL 에서 비슷한게 있는지 찾아보겠습니당 답변 감사합니다~ ^^

by DarkBee [2014.02.14 17:18:47]
SELECT 지역
     , count (*)
     , count (*) / sum ( count(*) ) over () * 100
  FROM t
 WHERE 조건 = 1
 GROUP BY 지역 

by nayha [2014.02.14 17:23:45]
DarkBee 
님 답변 감사합니다  아래 처럼 CAST 해서 해결했습니다  정말 감사합니다.

 SELECT area
     , count (*)
     , CAST(count (*) as float) / sum ( count(*) ) over () * 100 as avg
  FROM pool_1
 WHERE pool_bond_number='140116-100022'
 GROUP BY area 
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입