ホームページ > データベース > mysql チュートリアル > MySQL で累積現金合計が制限を超えた最初の行を見つける方法は?

MySQL で累積現金合計が制限を超えた最初の行を見つける方法は?

Linda Hamilton
リリース: 2024-11-04 05:31:02
オリジナル
414 人が閲覧しました

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

MySQL を使用した制限を超えた以前のキャッシュサムを持つ最初の行の取得

問題定義:

ID 列とCash 列を持つテーブルが与えられた場合、タスクは、前の行の現金の累積合計が指定された値を超えている最初の行を取得することです。たとえば、必要な制限が 500 の場合、関数は現金の累積合計が 500 を超える 3 行目を返す必要があります。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート