database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 5906 게시물 읽기
No. 5906
이게 가능한가요?
작성자
박정원(gardenpu)
작성일
2011-06-17 16:47
조회수
7,078
지점 장비 값1
A 장비1 2
A 장비2 3
B 장비1 4
B 장비2 5

 지점별, 장비별로 그룹지어서 위와같이 나온겁니다.

이상태에서 select를 하나더 추가하는데 그 값은 각 지점의 모든 장비의 값을 더한 값으로 하고 싶습니다.

지점 장비 값1 값2
A 장비1 2 5
A 장비2 3 5
B 장비1 4 9
B 장비2 5 9

이런식으로 말입니다.

기존의 쿼리문이

select 지점, 장비, sum(값1) from table group by 지점, 장비

이렇다면 값2를 추가할 경우 어떤식으로 해줘야 되나요?

이 글에 대한 댓글이 총 5건 있습니다.

with t as (
select 'A' branch, '장비1' equipement, 2 val1 union all
select 'A', '장비2', 3 union all
select 'B', '장비1', 4 union all
select 'B', '장비2', 5
)
select branch
     , equipement
     , val1
     , sum(val1)over(partition by branch) val2
  from t

知音(sunnylee72)님이 2011-06-17 17:35에 작성한 댓글입니다.

sunnylee72 // 쿼리를 날리는 시점에 지점이 A, B 뿐만아니라 뭐가 더있는지 모르구요, 장비도 마찬가지 인데 저 쿼리가 가능한가요?

그리고 생각해본게 기존의 쿼리문으로 임시테이블을 만들고 그 임시테이블에서 값1, 2를 갖는 각각의 셀렉트문을 서로 조인해도 가능할것 같은데 이 방법은 어떤가요?

박정원(gardenpu)님이 2011-06-17 17:51에 작성한 댓글입니다.

지음님께서 여기서도 활동 하시네여...

테스트 해보세요...  대신 버젼은 2005이상이셔야 합니다...

2005이상에서 추가된 기능 중 하나입니다... sum() over

group by 를 쓰지 않고도 집계 합수를 이용할수 있습니다,,

다른 디비에서는 group by 를 묶지 않는 컬럼을 나열하는데 mssql에서는 이게 않되죠..

이걸 보완한 기능 입니다,,, 장비의 갯수 하고는 상관 없습니다...

정원님이 생각하신대로 장비별 합계를 구하는 인라인뷰와 테이블을 조인 하셔도 됩니다...

지음님은 새로운 기능을 이용한 쿼리를 보여 주신듯 합니다,,

지나가다가님이 2011-06-17 20:38에 작성한 댓글입니다. Edit

장비의 갯수와 지점의 갯수와 관계없습니다.
with 절에 임의의 값으 넣고 실행해 보세요..

다만, 지나가다가님 말씀처럼 2005 이상 버젼에서 사용가능합니다.

말씀하신 것처럼 아래처럼 inline view를 사용하셔도 무방하겠죠.

select a.branch
     , a.equipement
     , a.val1
     , ( select sum(val1)
           from t b
          where b.branch = a.branch
       ) val2
  from t a

知音(sunnylee72)님이 2011-06-20 09:32에 작성한 댓글입니다.

멀그리 복잡하게 생각하시나요.
간단하게...

select a.*, b.값2
from (
       select 지점, 장비, sum(값1) 값1
       from table
       group by 지점, 장비
     ) a
     left join (
                 select 지점, sum(값1) 값2
                 from table
                 group by 지점
               ) b on a.지점=b.지점

이승철(yamyo)님이 2011-06-20 12:05에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5909쿼리분석기에서 쿼리문 보기
궁금이
2011-06-27
6315
5908디비 통합 관련 질문 드립니다.
윤영덕
2011-06-22
6826
5907로그인,로그오프 로그에 관한질문
김형태
2011-06-20
6451
5906이게 가능한가요? [5]
박정원
2011-06-17
7078
5905CTE를 사용해서 BOM구조를 가져온 리스트를 테이블처럼 사용하려면 어떻게 해야 할까요.. [1]
장준일
2011-06-15
9122
5904전체 텍스트 인덱스 활성화 시키려면?
문승원
2011-06-15
6781
5903한 컬럼의 값에 따라 다른컬럼을 ceiling 하려 합니다. [1]
박정원
2011-06-14
6485
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다