2012-10-17 4 views
3

나는 내가 테이블 수는 있도록 쿼리 수있는 방법 등포스트 그레스 간단한 '피봇'테이블

name | type | count 

test | blue  | 6 
test2 | red  | 3 
test | red  | 4 

같은 데이터의 테이블이있는 경우 :

name | num_red | num_blue 

test | 4   | 6 
test2 | 3   | 0 

을 내가 할 수 물론 SELECT COUNT (*) where type = blue etc 그러나 이처럼 한 쿼리에서 여러 유형을 계산하는 방법을 생각할 수는 없습니다.

감사합니다.

+0

얼마나 많은 종류가 있습니다? –

+0

이것은 매우 기본적인 SQL입니다. 그래서 John의 답변을 그대로 사용하는 대신 PostgreSQL 튜토리얼과 사용자 매뉴얼을 읽어 보시고 왜 * 작동하는지 그리고 어떻게 이해 하는지를 강력하게 권장합니다. –

답변

5

선택 절에서 CASE을 사용할 수 있습니다.

SELECT name, 
     SUM(CASE WHEN type = 'red' THEN "count" ELSE 0 END) numred, 
     SUM(CASE WHEN type = 'blue' THEN "count" ELSE 0 END) numblue 
FROM tableName 
GROUP BY name 

SQLFiddle Demo

+0

크로스 탭없이 동적 피벗을 수행하는 방법! –