>  기사  >  데이터 베이스  >  MySQL에서 누적 현금 합계가 한도를 초과하는 첫 번째 행을 찾는 방법은 무엇입니까?

MySQL에서 누적 현금 합계가 한도를 초과하는 첫 번째 행을 찾는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-04 05:31:02369검색

How to Find the First Row Where Cumulative Cash Sum Exceeds a Limit in MySQL?

MySQL을 사용하여 이전 현금 합계가 한도를 초과하는 첫 번째 행 검색

문제 정의:

id와 cash 열이 있는 테이블이 주어지면 이전 행의 현금 누적 합계가 지정된 값을 초과하는 첫 번째 행을 검색하는 작업이 수행됩니다. 예를 들어 원하는 한도가 500이면 현금 누적 합계가 500을 넘는 세 번째 행을 반환해야 합니다.

MySQL 솔루션:

시도하는 동안 WHERE 절(예: WHERE SUM(cash) > 500)의 집계를 비교하는 데 실패하면 HAVING 절을 사용하여 집계를 비교할 수 있습니다. 그러나 HAVING 절에는 해당 GROUP BY 절이 필요합니다.

이 문제를 해결하려면 다음 쿼리를 사용할 수 있습니다.

SELECT y.id, y.cash
FROM (
  SELECT t.id,
  t.cash,
  (
    SELECT SUM(x.cash)
     FROM TABLE x
    WHERE x.id <= t.id
  ) AS running_total
  FROM TABLE t
  ORDER BY t.id
) y
WHERE y.running_total > 500
ORDER BY y.id
LIMIT 1

이 쿼리는 하위 쿼리를 활용하여 현금 누적 합계를 계산합니다. running_total 열 별칭에 저장되는 각 행에 대해. WHERE 절의 running_total 컬럼을 참조하면 누적 합계가 지정된 한도를 초과하는 첫 번째 행을 검색할 수 있습니다. LIMIT 1 절은 그러한 첫 번째 행만 반환되도록 보장합니다.

위 내용은 MySQL에서 누적 현금 합계가 한도를 초과하는 첫 번째 행을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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