푸른청년 푸르게 살고있나?  
home | 살아가기 | news | 세상보기 | tip&tech | 방명록 |  
   전체
   asp
   php
   jsp
   mssql
   mysql
   informix
   linux
   unix
   win2000
   javascript
   html
   oracle
   java
   etc
    
:: Tip&Tech > mssql
COMPUTE 와 COMPUTE BY 쓰기
group by 는 그룹에 대한 부분합계를 볼수 있다. 하지만 상세내역을 볼수는 없다. 상세내역과 그룹합계를 모두 한꺼번에 볼수는 없을까..
그게 바로 compute와 compute by 문이다.

전체 평균과 그룹별 평균을 구해보자

select avg(price) from titles : 전체평균

select type, avg(price)
from titles
group by type : 그룹별 평균

결과
type
------------ ---------------------
business 8.9825
mod_cook 11.4900
popular_comp 21.4750
psychology 13.5040
trad_cook 15.9633
UNDECIDED NULL

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

compute를 쓰면

select type, title_id, price
from titles
order by type
compute avg(price) by type


결과값
type title_id price
------------ -------- ---------------------
business BU1032 1.0000
business BU1111 11.9500
business BU2075 2.9900
business BU7832 19.9900

avg
=====================
8.9825


type title_id price
------------ -------- ---------------------
mod_cook MC2222 19.9900
mod_cook MC3021 2.9900

avg
=====================
11.4900

전체 평균은 compute만 쓴다

select type, title_id, price
from titles
compute avg(price)

결과값
type title_id price
------------ -------- ---------------------
business BU1032 1.0000
business BU1111 11.9500
business BU2075 2.9900
business BU7832 19.9900
mod_cook MC2222 19.9900
mod_cook MC3021 2.9900
UNDECIDED MC3026 NULL
popular_comp PC1035 22.9500
popular_comp PC8888 20.0000
popular_comp PC9999 NULL
psychology PS1372 21.5900
psychology PS2091 10.9500
psychology PS2106 7.0000
psychology PS3333 19.9900
psychology PS7777 7.9900
trad_cook TC3218 20.9500
trad_cook TC4203 11.9500
trad_cook TC7777 14.9900

avg
=====================
13.5793

날짜: 2004-05-11 11:50:22, 조회수: 5305

다음글 특정디비의 모든 테이블의 row수 알아내기 2
이전글 CASE 와 COALESCE 사용하기

꼬리말
글쓴이 비밀번호 #스팸글방지(주인장 닉네임을 쓰시오)

  
since by 2003.03.23 / 3th 2005.07.26 / 4th 2009.04.22 made by bluesoul