programing

SQL에서 지정된 양을 초과하는 첫 번째 행을 가져오는 방법

randomtip 2022. 12. 21. 22:57
반응형

SQL에서 지정된 양을 초과하는 첫 번째 행을 가져오는 방법

다음 데이터가 포함된 테이블이 있습니다.

아이디 날짜.
1 500 2021-05-01
2 100 2021-05-03
3 300 2021-05-06

다음 예시와 같이 특정 금액을 초과하는 첫 번째 레코드를 받아야 합니다.

  • 구체적인 금액이 500이면 ID 1을 반환합니다.
  • 구체적인 금액이 550이면 ID 2를 돌려드립니다.
  • 600이면 ID 2가 반환됩니다.
  • 특정 금액이 600을 넘으면 ID 3을 반환합니다.

MySQL 쿼리를 사용하여 이를 수행하려면 어떻게 해야 합니까?

누적 합계 및 일부 필터링을 사용할 수 있습니다.

select t.*
from (select t.*,
             sum(amount) over (order by date) as running_amount
      from t
     ) t
where running_amount >= @threshold and
      (running_amount - amount) < @threshold;

언급URL : https://stackoverflow.com/questions/69103371/how-to-get-the-first-row-which-exceeds-a-specific-amount-in-sql

반응형