>데이터 베이스 >MySQL 튜토리얼 >단일 쿼리로 MySQL에서 누계를 계산하는 방법은 무엇입니까?

단일 쿼리로 MySQL에서 누계를 계산하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-22 06:46:10627검색

How to Calculate Running Totals in MySQL with a Single Query?

단일 쿼리로 MySQL에서 누계를 효율적으로 계산

이 가이드에서는 데이터에 date 열과 성공적인 결제를 나타내는 hasPaid 플래그가 포함되어 있다는 가정 하에 일일 주문 건수의 누계를 계산하는 단일 MySQL 쿼리를 보여줍니다.

최적화된 쿼리는 다음과 같습니다.

<code class="language-sql">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;</code>

이 쿼리는 @runtot 변수를 0으로 초기화합니다. 그런 다음 핵심 논리는 일일 주문 수(COUNT(*) AS c)를 계산하고 단일 @runtot := @runtot COUNT(*) AS rt 문 내에서 누계(SELECT)를 동시에 업데이트합니다. 이렇게 하면 하위 쿼리나 다중 패스가 필요하지 않아 효율성이 향상됩니다. GROUP BY d 절은 결과를 일별로 그룹화하고 ORDER BY d 누계가 순차적으로 계산되도록 합니다. 이 방법은 일일 주문 수(rt) 및 날짜(c)와 함께 누계 열(d)을 효율적으로 생성합니다.

위 내용은 단일 쿼리로 MySQL에서 누계를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.