2016-10-14 8 views
0

나는 7k 레코드의 PostgreSQL 테이블을 가지고있다. 각 레코드에는 3 개의 고유 한 ID와 3 개의 필드가 있습니다. childcares, shcools, 병원. 모든 정수 필드가 있습니다. 나는 새로운 열을 추가하고 각 행에 대한 수용체 (학교, 아동 보육 기관, 병원)의 총량을 계산하려고합니다. 나는이 열을 추가하고 선택과 삽입을하고 꽤 straighforward해야한다 생각하지만 난 또한 삽입을 선택 성명에서 ID로 그룹을 시도 내가SQL 추가 열

alter table site add total integer; 

insert into site(total) select sum(schools+childcares+hospitals) as s from site; 

를 원하는 결과를 얻고 있지 않다

답변

1

당신은 Update를 찾고 있습니다하지

Update site 
set total = COALESCE(schools,0)+COALESCE(childcares,0)+COALESCE(hospitals,0) 

추가 COALESCEInsertNULL 값을 처리합니다.

예 :

1 + 2 + NULL = NULL 그래서 난 COALESCE을 사용했다 0NULL 교체.

이제는 1 + 2 + 0(NULL) = 3

+0

무엇이 병합합니까? – ziggy

+0

@ziggy -'Coalesce'는리스트에서 첫 번째 'Not Null'값을 반환합니다. 'NULL' 값을'zero'로 바꾸고 있습니다. –

+0

ahh gotcha great 그거야! – ziggy