2017-03-24 10 views
1

테이블의 각 ID에 대해 속성 개월에 값 1이 얼마나 많이 있는지 계산하려고합니다. 여기 특정 속성 값을 계산하면서 ID를 그룹화합니다.

내가

ID.   Months 
    1000  1 
    1000  1 
    1000  2 
    1001  2 
    1002  3 
    1003  1 

이것은 당신이 한 달 동안 행을 계산하려면 내가

ID.   Count(Months=1) 
    1000  2 
    1003  1 
+0

t.Months = '1'그룹 (id : – rathna

+0

)으로 tab, t (tabs)에서 select id, sum (월) 안녕하신 것을 환영합니다. 올바른 방법으로 질문하고 stackoverflow가 어떻게 작동하는지 더 배우려면 [this tourguide] (http://stackoverflow.com/tour)를 읽어보십시오. –

답변

0

을하고 싶은 당신을 위해 WHERE 절을 사용할 수 있습니다 무엇을하고 있어요 것입니다 필터링 :

select id, 
    count(*) as cnt 
from your_table 
where month = 1 
group by id; 

한 달에 여러 달을 계산하려면 (p ivoting), 당신은 데이터베이스의 가장 조건부 집계를 사용할 수 있습니다

select id, 
    count(case when month = 1 then 1 end) as cnt_month_1, 
    count(case when month = 2 then 1 end) as cnt_month_2, 
    count(case when month = 3 then 1 end) as cnt_month_3, 
    . . . 
from your_table 
group by id; 

일부 데이터베이스는이 작업 PIVOT 연산자를 제공합니다. 이를 위해서는 사용중인 데이터베이스를 지정해야합니다.