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
운영게시판
최근게시물
PostgreSQL Q&A 6227 게시물 읽기
No. 6227
쿼리를 못찾겠습니다..
작성자
초보
작성일
2005-07-22 18:36ⓒ
2005-07-22 18:38ⓜ
조회수
2,115

아래와 같은 상황을 처리할 수 있는 쿼리를 작성해야 하는데

복잡해서 정리가 안됩니다.. 도움을 부탁드립니다.

 

일단 고객 table 에 100 여명의 고객이 등록되어 있고

이중에 중요 고객으로 체크된 고객이 10명이 있습니다.

 

이 고객들이 구매한 제품에 대해 만족도를 입력해둔 table 이 있는데

만족, 보통, 불만족, 기타 이렇게 4개가지가 있습니다.

 

한 고객이 여러 물품을 구매하면서 만족도를 입력했기 때문에

만족도 테이블에 입력순서대로 그냥 만족도가 쭉 들어 있습니다.

 

이들에 대한 통계를 보려 하는데 전부는 필요없고 아까 중요고객으로 체크된

고객 10명에 대해 각각 만족 몇건, 보통 몇건, 불만족 몇건, 기타 몇건 .... 이렇게 해서

뽑아 보려고 합니다.

 

이름 하여 고객별 만족도 현황인데..

젤 먼저 고객테이블에서 중요고객들만 뽑아서

그사람들이 지금까지 구매한 물건들 총 갯수중 만족은 몇개고 보통은 몇개고..

이런식입니다..

 

고객 table

-----------

1 홍길동 일반

2 김사장 중요

3 아무개 일반

4 아무개2 중요

 

구매 table

---------

고객1 제품1 만족

고객1 제품2 불만

고객2 제품2 불만

고객3 제품3 만족

고객4 제품1 만족

고객1 제품2 만족

 

 

고객    만족 보통 불만 기타

김사장    1    2    0    0

아무개2   0    1    0    0


 

이런식으로 뽑고 싶거든요..

설명도 좀 복잡했던거 같은데..

음.. 아무쪼록 조언 부탁드립니다..

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

create table tblCustomer
(
 idx int identity
 ,userName char(10)
 ,grade char(10)
)

create table tblProduct
(
 userName char(10)
 ,productname char(10)
 ,thinkResult char(10)
)
 

insert into tblCustomer values('김민석','중요')
insert into tblCustomer values('김현웅','중요')
insert into tblCustomer values('손삼민','중요')
insert into tblCustomer values('신교준','중요')
insert into tblCustomer values('김개똥','일반')
insert into tblCustomer values('정우성','일반')

insert into tblProduct values('김민석','노트북','좋아')
insert into tblProduct values('정우성','노트북','좋아')
insert into tblProduct values('손삼민','노트북','별로')
insert into tblProduct values('김현웅','노트북','좋아')
insert into tblProduct values('김민석','C#','좋아')
insert into tblProduct values('김현웅','델파이','좋아')
insert into tblProduct values('김현웅','피씨','나빠')

select * from tblCustomer


select userName,
'좋아' = sum(case thinkResult when '좋아' then 1 else 0 end) 
, '별로' = sum(case thinkResult when '별로' then 1 else 0 end)
, '나빠' = sum(case thinkResult when '나빠' then 1 else 0 end)
 
from tblProduct
where userName in
 (select userName from tblCustomer where grade ='중요')
group by userName

 

 

 

userName   좋아          별로          나빠
---------- ----------- ----------- -----------
김민석        2           0           0
김현웅        2           0           1
손삼민        0           1           0

(3 row(s) affected)

뭐 이정도는 어떤데서도 다 되지 싶습니다.

유콘 에서 돌려 보았습니다. ^^; 심심해서 유콘 테스트 하는 중입니다.

흠 좋은듯 합니다.

 

석이님이 2005-07-23 02:35에 작성한 댓글입니다. Edit

오....

감사합니다.. 원하는 결과가 잘 나오는것 같습니다..

누적수치를 세는것이라서 전 계속 count 로만 어떻게

해보려고 했었는데.. sum으로 이렇게 셀수가 있군요..+_+

 

초보님이 2005-07-23 09:56에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6233쿼리 질문입니다. [5]
김동훈
2005-07-28
2087
6230dblink에 대한 질문 [1]
해월리
2005-07-25
2069
6228동적인 배열 사용..존재하는지 궁금합니다. [1]
초보ds
2005-07-23
2280
6227쿼리를 못찾겠습니다.. [2]
초보
2005-07-22
2115
6226배열변수 사용시 에러 [1]
초보ds
2005-07-22
2131
6225프로시져 실행하기 [1]
해워리
2005-07-22
3479
6224view 생성시 컬럼에 sum()이 들어가면.. 성능적으로 어떤가요? [1]
박기원
2005-07-22
2105
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다