検索

ホームページ  >  に質問  >  本文

特定の列でのグループ化を回避する方法

<p>予定に関するデータ テーブルがあり、関連データが更新されると、各予定に複数行のデータが含まれる可能性があります。各予定の最後のレコードを選択して、各予定の最新のスナップショットを取得したいと考えています。 </p><p>添付のコードでは、close_pallets と close_units でグループ化する必要があり、表示内容に影響を与えます (つまり、予定ごとに複数の行が返されます)。 a.appointment_id のみでグループ化したいので、予定ごとに 1 行を取得します。どうすればいいですか?</p><p><br /></p> <pre class="brush:php;toolbar:false;">SELECT MAX(アポイントメントレコードバージョン番号)、 予定ID、 appointment_pallets AS close_pallets、 appointment_units AS close_units から b.dh どこ last_updated_datetime '2023-06-01' と '2023-06-30' の間 AND 倉庫 ID = 'xxx' グループ化 予定ID、 パレットを閉じる、 close_units</pre> <p><br /></p>
P粉667649253P粉667649253487日前458

全員に返信(1)返信します

  • P粉744691205

    P粉7446912052023-07-26 10:58:55

    これを実現するには、サブクエリを使用する必要があります。実際には、各予定 ID の最大記録バージョンを取得する必要があります:

    リーリー

    JOIN ステートメントを使用して最大値を選択することもできます。この方が速い場合があります:

    リーリー

    ユースケースに応じて、特にデータベースが大きい場合は、追加のサブクエリまたはインデックスを使用してリクエストをさらに最適化できますが、すでにかなり高速です。

    返事
    0
  • キャンセル返事