「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > ゼロ以外のチェック額のSQLクエリ最大日列

ゼロ以外のチェック額のSQLクエリ最大日列

2025-04-14に投稿されました
ブラウズ:524

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

sqlテーブルからゼロ以外のチェック値で最新のエントリを抽出します

このガイドは、各グループの最新のレコードを効率的に取得する方法を示しており、ゼロ以外のチェック額をフィルタリングしています。 このような構造化されたテーブルを想定しましょう:

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

次のSQLアプローチがこれを達成します:

最初に、チェック値がゼロよりも大きい各グループの最大日付が見つかります:

SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;

これは得られます:

group    max_date
  2    1/1/2013
  1    1/3/2013
  3    1/5/2013

次に、この結果を元のテーブルに戻して、対応するチェックを取得します量:

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;

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

group    max_date    checks
  2    1/1/2013    800
  1    1/3/2013    700
  3    1/5/2013    200

重要な注意:予約単語( date など)を列名として使用しています。 SQL構文エラーにつながり、コードを維持しにくくすることができます。 あなたの列のより記述的で明確な名前を考慮してください。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3