예제를 사용하여 설명하려고하는 일반적인 질문이 있습니다.MySQL/SQL : 업데이트 된 테이블 자체의 상관 하위 쿼리로 업데이트
아이디어는 각각의 단일 관련, 나는 몇 가지 항목을 가지고있다 "ID", "이름", "카테고리", "외모"와 "비"
내가 필드가있는 테이블을 말해봐 카테고리에 나타나고 여러 번 나타납니다. 비율 필드에는 카테고리의 총 출현 횟수 중 각 항목의 출현 비율이 포함되어야합니다.각 카테고리
를 들어 이와 관련된 항목에 대한 모습의 총합을 찾을 : 의사 코드에서은 내가 필요한 것은 다음과 같은 것입니다. 예를 들어, 그것은 항목의 모습이
이 난 이제 비율 값을 설정 각 항목에 대해 (
select sum("appearances") from table group by category
)
수행 할 수 있습니다 단일 업데이트 쿼리로이 작업을 수행하려고 시도하지만 그렇게 할 수는 없습니다.
update Table T
set T.ratio = T.appearances/
(
select sum(S.appearances)
from Table S
where S.id = T.id
)
그러나 MySQL은 업데이트 열의 별명 T를 허용하지 않습니다, 나는이 달성의 다른 방법을 찾지 못했습니다 : 내가 어떻게해야 생각하는 것입니다.
아이디어가 있으십니까? 이것은이 MSSQL에서 수행하는 방법이다
는
대답을 답으로 표시하여이 질문을 답이없는 질문 목록에서 제거하십시오 :) –
@Frans : 그렇게 할 수 있기까지 48 시간을 기다려야했습니다. 스택 오버플로 규칙입니다. –
Nice. 전체 예제를 제공하는 데 시간을내어 주셔서 감사합니다! – Ben