반응형
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
반응형
'programing' 카테고리의 다른 글
PHP 랜덤 문자열 생성기 (0) | 2022.12.21 |
---|---|
maven-shade-plugin의 용도와 Java 패키지를 재배치하는 이유는 무엇입니까? (0) | 2022.12.21 |
서브쿼리가 NULL인지 확인합니다. (0) | 2022.12.21 |
MySQL에 있는 경우 업데이트하고 없는 경우 삽입(AKA "upsert" 또는 "Merge")하려면 어떻게 해야 합니까? (0) | 2022.12.21 |
워드프레스를 위한 MariaDB 최적화 (0) | 2022.12.21 |