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 4503 게시물 읽기
No. 4503
상관 부질의..
작성자
이경욱(feelv)
작성일
2002-12-31 04:55
조회수
1,040

테이블 t0, t1 이 있습니다.

 

SELECT * FROM t0

 

SELECT count(*) FROM t1 WHERE id = t1.id

 

위 두개의 쿼리를 하나의 쿼리로 어떻게 만들죠?

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

두개의 쿼리를 하나의 쿼리로 합치는 방법은 일반적으로 union 을 씁니다.

 

현재 쿼리 만으로는 union이 가능한지를 판단할 수 없습니다.

 

두번째 쿼리의 count(*) 프로젝션은 number 값을 던져주는 한개의 column만 가지기 때문입니다.

즉, t0 테이블의 스키마가 number 의 한개 column 으로 구현된다면 가능도 하겠지요.

 

문제는 질문의 답이 지금 답변드린 답이 아닐 듯싶습니다. 무엇을 질의 하려고 하는지는 이해못해서.

김상기(ioseph)님이 2002-12-31 11:08에 작성한 댓글입니다.

t0은 상품 테이블이고

t1은 주문목록 테이블입니다.

 

t0의 속성으로 product_id(PK), name, size, price가 있고

t1의 속성으로 seq(PK), product_id(FK), date가 있습니다.

 

원하는 결과는 상품 테이블의 상품정보와

주문목록 테이블에서 그 상품의 총 주문횟수를

구하려고 하는겁니다.

 

해답을 아시면 답변 부탁드립니다.

이경욱(feelv)님이 2003-01-01 03:37에 작성한 댓글입니다.

주문된 제품마다의 주문숫자라면..

group by 를 쓰셔야 할듯 싶습니다..

 

select product_id, count(*) from t1 group by 1 order by 2 desc;

 

하시면 원하시는 것이 될듯..

신기배(nonun)님이 2003-01-01 06:18에 작성한 댓글입니다.

이렇게 해보시죠

 

select t0.product_id,name,size,price,cnt

from t0

left join

(select product_id,count(*) as cnt

from t1

group by product_id) as t1

using (product_id)

;

황치영(gau)님이 2003-01-01 09:20에 작성한 댓글입니다.

문제를 푸는 방법은 outer join을 사용하는 방법입니다.

황치영님의 쿼리가 깔끔하네요.

 

노파심에서 (^.^) 한마디.

저런 문제라면,

제품 번호가 많아지면 많아질수록 무지막지한 시간이 소요될 것입니다.

 

그래서, 일반적으로 저런 쿼리가 빈번히 사용될 것이라면, t0 테이블에서 주문횟수를 기록해 두는 방식을 택합니다. 그리고, 그 주문횟수의 숫자 변환은 t1테이블에서 insert, update,delete 될 때 증감 하도록 트리거로 걸어두면, 깔끔하게 풀리겠지요.

 

경험상 PK, FK 형태의 테이블에서 상태값(통계값)이 필요한 경우는 대부분 트리거형태로 움직이는 것이 제일 안전합니다.

김상기(ioseph)님이 2003-01-02 15:47에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4509PostgreSql tool 이 있나요? [1]
이은주
2003-01-06
1223
4508[질문] 에러 메시지 (로그를 지웠어요..T.T) [1]
이근호
2003-01-06
1127
4507createlang [1]
이경욱
2003-01-06
1110
4503상관 부질의.. [5]
이경욱
2002-12-31
1040
4502저기요..처음시작하는데.. [2]
배우장
2002-12-30
902
4501[질문] 데이타 insert 후 디스크 공간이 모잘라 에러 낫을경우 [1]
이근호
2002-12-30
1122
4497Trigger에서 이상한 현상?? [2]
이승철
2002-12-26
1222
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다