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 중국어 웹사이트의 기타 관련 기사를 참조하세요!