2017-05-21 1 views
0

Postgresql에서 내 열 중 하나에 5 개의 값 중 하나만 포함되어 있습니다. 이 5 가지 값 중 하나는 "성숙"입니다. 전체 테이블의 특정 커팅에 대해 해당 열에 "성숙함"이 몇 번 나타나는지 쿼리하는 쿼리를 작성하려고합니다.pgsql 테이블의 열에있는 고유 값의 수를 집계하고 열에 표시하는 방법은 무엇입니까?

다음 쿼리는 syntax error at or near "Matured" 오류를 생성합니다.

쿼리 : 쿼리를 사용하여

"Matured";694 
"Credit Approved";3 
"Delinquent";572 
"Current";1356 
"Canceled";16 

: : 또는

select count(case when stagename is Matured end) from db_table 

, 나는 다음과 같은 결과가

select distinct stagename, 
     sum(case when stagename is not null then 1 else 0 end) 
     from db_table 
     group by stagename 

을하지만 열 수 없습니다 행이 결과를해야합니다. 그래서 같이 :

  |Matured |Credit Approved |Delinquent |Current |Canceled 

stage_count | 694 개 | 3 개 | 572 개 | 1356 | 16

어떤 아이디어?

+0

' '성숙'이 해당 열에 표시되는 횟수를 계산하는 쿼리를 작성하려고합니다. - 왜 그냥 :'count = (*) from table where column = 'Matured''입니까? –

+0

행이 아닌 열에 왜 필요합니까? 나에게 가장 먼저 떠오르는 것은 'stagename을 선택하고 stagename에 의해 db_table 그룹에서 count (*)를 만든 다음 python과 같은 것을 사용하여'Transpose() '를 수행하는 것입니다. 아마 PSQL에서 그것을하는 방법이 있지만 그 열 요구 사항을 이해하지 못합니다. – Henry

+0

사실, 나는 R을 사용하여 트랜스 포스를 생각하지 않았고 모든 것을 하나의 쿼리로 얻으려고했다. 감사! 추신 : 큰 테이블을 한 달에 현명하게 나눠서하고 있기 때문에 하나의 테이블에 필요합니다. 그것은 월별 현명한 요약의 나머지 부분과 동일한 테이블에 있어야하며 그렇지 않으면 문맥을 잃을 것입니다. –

답변

0

쿼리가 성숙됨에 대한 작은 따옴표뿐만 아니라 구문 오류를 반환하는 문이 올바르지 않은 경우가 있습니다. 아래 쿼리를 사용하여 필요한 결과를 얻을 수 있습니다. 당신은 또한 포스트에 대한 crosstab의 기능을 읽을 수 있습니다.

select count(case when stagename = 'Matured' then 1 end), 
count(case when stagename = 'Credit Approved' then 1 end), 
count(case when stagename = 'Delinquent' then 1 end), 
count(case when stagename = 'Current' then 1 end), 
count(case when stagename = 'Canceled' then 1 end) 
from db_table 

참고 : 열이 주요 공간 후행 포함하면은 다음 열 이름과 트림 기능을 사용하고 비교한다.

관련 문제