반응형
SQL 업데이트 쿼리의 집계 함수?
한 테이블의 값을 다른 테이블의 값의 합으로 설정하려고합니다. 이 라인을 따라 뭔가 :
UPDATE table1
SET field1 = SUM(table2.field2)
FROM table1
INNER JOIN table2 ON table1.field3 = table2.field3
GROUP BY table1.field3
물론 이것이 의미하는 것처럼 작동 SET
하지 않습니다. 지원 SUM
하지 않으며 지원하지도 않습니다 GROUP BY
.
나는 이것을 알아야하지만 내 마음은 공백을 그려 내고있다. 내가 뭘 잘못하고 있죠?
UPDATE t1
SET t1.field1 = t2.field2Sum
FROM table1 t1
INNER JOIN (select field3, sum(field2) as field2Sum
from table2
group by field3) as t2
on t2.field3 = t1.field3
사용하다:
UPDATE table1
SET field1 = (SELECT SUM(t2.field2)
FROM TABLE2 t2
WHERE t2.field3 = field2)
또는 JBrooks 및 OMG Ponies 답변을 혼합하여 사용할 수 있습니다 .
UPDATE table1
SET field1 = (SELECT SUM(field2)
FROM table2 AS t2
WHERE t2.field3 = t1.field3)
FROM table1 AS t1
CROSS APPLY를 사용하기에 좋은 상황
UPDATE t1
SET t1.field1 = t2.field2Sum
FROM table1 t1
CROSS APPLY (SELECT SUM(field2) as field2Sum
FROM table2 t2
WHERE t2.field3 = t1.field3) AS t2
질문이 SQL Server 태그라는 것을 알고 있지만 PostgreSQL을 사용하는 경우 JOIN으로 UPDATE 할 때주의하십시오 . @JBrooks 답변이 작동하지 않습니다.
UPDATE t1
SET t1.field1 = t2.field2Sum
FROM table1 t1
INNER JOIN (...) as t2
on t2.field3 = t1.field3
다음 사항에 맞게 조정해야합니다.
UPDATE table1 t1
SET t1.field1 = t2.field2Sum
FROM (...) as t2
WHERE t2.field3 = t1.field3
PostgreSQL에서 자체 조인으로 간주되는 from_list
이유를 확인하려면 문서의 매개 변수 를 참조하십시오 FROM
. https://www.postgresql.org/docs/9.5/static/sql-update.html#AEN89239
참고 URL : https://stackoverflow.com/questions/2009927/aggregate-function-in-an-sql-update-query
반응형
'IT story' 카테고리의 다른 글
PrevTask.Wait ()를 ContinueWith와 함께 사용하는 것이 좋습니다 (태스크 라이브러리에서)? (0) | 2020.09.09 |
---|---|
Android Studio / IntelliJ에서 Maven 종속성을 가져 오는 방법은 무엇입니까? (0) | 2020.09.09 |
angularjs에서 $ http 요청에서 응답이 올 때까지 기다리는 방법은 무엇입니까? (0) | 2020.09.09 |
Angular 2에서 추가 요소없이 ngIf 사용 (0) | 2020.09.09 |
MySQL 데이터베이스의 모든 트리거를 어떻게 나열합니까? (0) | 2020.09.09 |