[SQL] 는 SQL 업데이트 쿼리에서 집계 함수?
SQL는 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를 지원하지 않습니다.
나는 이것을 알아야한다,하지만 내 마음은 빈 그리기입니다. 내가 무엇을 잘못하고 있지?
해결법
-
==============================
1.
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
-
==============================
2.사용하다:
사용하다:
UPDATE table1 SET field1 = (SELECT SUM(t2.field2) FROM TABLE2 t2 WHERE t2.field3 = field2)
-
==============================
3.또는 당신은 JBrooks 및 OMG 조랑말 답변을 혼합하여 사용할 수 있습니다 :
또는 당신은 JBrooks 및 OMG 조랑말 답변을 혼합하여 사용할 수 있습니다 :
UPDATE table1 SET field1 = (SELECT SUM(field2) FROM table2 AS t2 WHERE t2.field3 = t1.field3) FROM table1 AS t1
-
==============================
4.좋은 상황은 CROSS APPLY가 사용하는
좋은 상황은 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
-
==============================
5.나는 문제가 SQL 서버 태그하지만 당신은 PostgreSQL을 사용하는 경우 가입에 UPDATE 조심해야한다 알고있다. @JBrooks 대답은 작동하지 않습니다 :
나는 문제가 SQL 서버 태그하지만 당신은 PostgreSQL을 사용하는 경우 가입에 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
A와 PostgreSQL을 간주됩니다 FROM 자체 조인 이유를 얻을 수있는 문서에 매개 변수 from_list를 참조하십시오 https://www.postgresql.org/docs/9.5/static/sql-update.html#AEN89239
-
==============================
6.당신은 또한 다음과 같은 CTE를 사용할 수 있습니다.
당신은 또한 다음과 같은 CTE를 사용할 수 있습니다.
;WITH t2 AS ( SELECT field3, SUM(field2) AS field2 FROM table2 GROUP BY field3 ) UPDATE table1 SET table1.field1 = t2.field2 FROM table1 INNER JOIN t2 ON table1.field3 = t2.field3
from https://stackoverflow.com/questions/2009927/aggregate-function-in-an-sql-update-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 여러 테이블에서 SQL INSERT INTO (0) | 2020.06.02 |
---|---|
[SQL] 서열 번호 MySQL과 열을 갱신 (0) | 2020.06.02 |
[SQL] 나는 오라클의 외래 키에 인덱스를 생성해야합니까? (0) | 2020.06.02 |
[SQL] 어떻게 R에서 SQL 순위 기능을 시뮬레이션? (0) | 2020.06.02 |
[SQL] ORA-01652 : 테이블 스페이스 시스템 128에 의해 임시 세그먼트를 확장 할 수 없습니다 : 어떻게 확장하려면? (0) | 2020.06.02 |