단일 쿼리로 MySQL에서 누계를 효율적으로 계산
이 가이드에서는 데이터에 date
열과 성공적인 결제를 나타내는 hasPaid
플래그가 포함되어 있다는 가정 하에 일일 주문 건수의 누계를 계산하는 단일 MySQL 쿼리를 보여줍니다.
최적화된 쿼리는 다음과 같습니다.
SET @runtot:=0; SELECT DATE(`date`) AS d, COUNT(*) AS c, (@runtot := @runtot + COUNT(*)) AS rt FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d;
이 쿼리는 @runtot
변수를 0으로 초기화합니다. 그런 다음 핵심 논리는 일일 주문 수(COUNT(*) AS c
)를 계산하고 단일 @runtot := @runtot COUNT(*) AS rt
문 내에서 누계(SELECT
)를 동시에 업데이트합니다. 이렇게 하면 하위 쿼리나 다중 패스가 필요하지 않아 효율성이 향상됩니다. GROUP BY d
절은 결과를 일별로 그룹화하고 ORDER BY d
누계가 순차적으로 계산되도록 합니다. 이 방법은 일일 주문 수(rt
) 및 날짜(c
)와 함께 누계 열(d
)을 효율적으로 생성합니다.
위 내용은 단일 쿼리로 MySQL에서 누계를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!