ホームページ > データベース > mysql チュートリアル > SQLでゼロ以外の小切手金額を持つ最大日付行を選択する方法は?

SQLでゼロ以外の小切手金額を持つ最大日付行を選択する方法は?

Barbara Streisand
リリース: 2025-01-08 13:18:44
オリジナル
961 人が閲覧しました

How to Select Maximum Date Rows with Non-Zero Check Amounts in SQL?

SQL テーブルからゼロ以外のチェック値を持つ最新のエントリを抽出する

このガイドでは、ゼロ以外の小切手金額をフィルタリングして、各グループの最新のレコードを効率的に取得する方法を説明します。 次のような構造のテーブルがあると仮定します:

<code>group    date      cash  checks
  1    1/1/2013     0      0
  2    1/1/2013     0      800
  1    1/3/2013     0      700
  3    1/1/2013     0      600
  1    1/2/2013     0      400
  3    1/5/2013     0      200</code>
ログイン後にコピー

次の SQL アプローチでこれを実現します。

まず、checks 値がゼロより大きい各グループの最大の日付を見つけます。

<code class="language-sql">SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;</code>
ログイン後にコピー

これにより次の結果が得られます:

<code>group    max_date
  2    1/1/2013
  1    1/3/2013
  3    1/5/2013</code>
ログイン後にコピー

次に、この結果を元のテーブルに結合して、対応する checks 金額を取得します。

<code class="language-sql">SELECT t.group, t.date AS max_date, t.checks
FROM table t
INNER JOIN (
  SELECT group, MAX(date) AS max_date
  FROM table
  WHERE checks > 0
  GROUP BY group
) AS a ON a.group = t.group AND a.max_date = t.date;</code>
ログイン後にコピー

この最後のクエリは、目的の出力を生成します:

<code>group    max_date    checks
  2    1/1/2013    800
  1    1/3/2013    700
  3    1/5/2013    200</code>
ログイン後にコピー

重要な注意事項: 列名として予約語 (date など) を使用することは強くお勧めできません。 SQL 構文エラーが発生し、コードの保守が困難になる可能性があります。 列については、より説明的で明確な名前を検討してください。

以上がSQLでゼロ以外の小切手金額を持つ最大日付行を選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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