[SQL] SQL 서버 업데이트 그룹에 의해
SQLSQL 서버 업데이트 그룹에 의해
나는 선으로 단지 그룹에서 MS-SQL이되지만 나 오류가이를 실행하기 위해 노력하고있어
update #temp
Set Dos=Count(1)
From Temp_Table2010 s
where Id=s.Total and s.total in (Select Id from #temp)
group by s.Total
수행 아무도 내가 좋은 성능을 가지고이 문제를 해결할 수있는 방법을 알고 있습니다.
해결법
-
==============================
1.시험
시험
;with counts AS ( SELECT total, COUNT(*) as dos FROM temp_table2010 WHERE total in (select id from #temp) ) UPDATE T SET dos=counts.dos FROM #temp T INNER JOIN counts ON t.id = counts.total
-
==============================
2.SQL 서버에서 방금 하위 쿼리에서 할 다음 업데이트 할 테이블에 가입해야 쿼리 업데이트에 통합 할 수 있습니다.
SQL 서버에서 방금 하위 쿼리에서 할 다음 업데이트 할 테이블에 가입해야 쿼리 업데이트에 통합 할 수 있습니다.
UPDATE #temp SET Dos = Cnt FROM #temp INNER JOIN (SELECT Total, COUNT(*) AS Cnt FROM Temp_Table2010 GROUP BY Total) AS s ON Id = s.Total
이렇게 :
WHERE total in (select id from #temp)
그리고:
INNER JOIN counts ON t.id = counts.total
중복입니다.
이 해결할 수있는 문제의 요구 사항은 "(...) 총"을 가입 할 수 있습니다. 다음 키 그룹과 조인.
-
==============================
3.당신은 우선, 업데이트 쿼리에 집계를 사용할 수 없습니다 - 당신은 원래 문제의 오류 메시지가 포함되지 않았지만, 나는 그게 당신을 말하고 무엇을 생각한다.
당신은 우선, 업데이트 쿼리에 집계를 사용할 수 없습니다 - 당신은 원래 문제의 오류 메시지가 포함되지 않았지만, 나는 그게 당신을 말하고 무엇을 생각한다.
당신은 당신의 갱신 전에 집계를 계산하고 임시 테이블에 결과를 저장 한 다음 갱신을 수행하는 해당 테이블에 가입해야합니다.
from https://stackoverflow.com/questions/2853403/sql-server-update-group-by by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 나는 IGNORE_DUP_KEY는 기본 키에 설정할 수 있습니까? (0) | 2020.05.13 |
---|---|
[SQL] 합니까 UNION ALL 결과 집합의 순서를 보장 [중복] (0) | 2020.05.13 |
[SQL] MySQL의에서 외래 키 열 이름 바꾸기 (0) | 2020.05.13 |
[SQL] 합니까 SQL은 순서는 성능에 영향을 미칠 JOIN? (0) | 2020.05.13 |
[SQL] 어떻게 MIN 또는 MAX에서 널 (null) 값을 포함 할 수 있습니까? (0) | 2020.05.13 |