SET 없이 MySQL에서 누적 합계
MySQL에서 누적 합계와 같은 분석 함수가 없으면 누계를 계산하려고 할 때 문제가 발생합니다. . 그러나 이 기능을 에뮬레이트하는 데는 두 가지 접근 방식이 있습니다.
상관 하위 쿼리
이 접근 방식은 기본 쿼리 내의 하위 쿼리를 활용하여 누적 합계를 구합니다. 그러나 이는 특히 복잡한 조인을 처리할 때 리소스 집약적이고 복잡할 수 있습니다.
사용자 변수
또는 MySQL의 사용자 변수를 활용하여 제어 중단을 수행할 수 있습니다. 처리. 이 방법에는 원래 쿼리의 결과를 정렬하고 이를 외부 쿼리에 래핑하는 작업이 포함됩니다.
외부 쿼리에서:
다음 논리가 적용됩니다.
사용자 변수는 계산 후 현재 id 및 day 값으로 업데이트됩니다.
예제 쿼리
SELECT IF(@prev_id = c.id AND @prev_day = c.day, @cumtotal := @cumtotal + c.amount, @cumtotal := c.amount) AS cumulative_total, @prev_id := c.id AS `id`, @prev_day := c.day AS `day`, c.hr, c.amount AS `amount` FROM ( SELECT @prev_id := NULL, @prev_day := NULL, @cumtotal := 0 ) i JOIN ( select id, day, hr, amount from ( //multiple joins on multiple tables)a left join (//unions on multiple tables)b on a.id=b.id ORDER BY 1,2,3 ) c
열 순서를 변경해야 하는 경우 변경됨:
SELECT d.id, d.day, d.hr, d.amount, d.cumulative_total FROM ( // query from above ) d
이 접근 방식은 MySQL 8.0 이전 버전에 적합하며 행 집합에 대한 누적 합계를 계산하는 효율적인 솔루션을 제공할 수 있습니다.
위 내용은 분석 함수를 사용하지 않고 MySQL에서 누적 합계를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!