ホームページ > データベース > mysql チュートリアル > SQL を使用して各証券の最新のポジションを効率的に取得するにはどうすればよいですか?

SQL を使用して各証券の最新のポジションを効率的に取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-04 18:11:42
オリジナル
452 人が閲覧しました

How to Efficiently Retrieve the Latest Position for Each Security Using SQL?

グループごとの最大値: 各証券の最新ポジションの取得

提供されたデータセットで、各証券の最新ポジションを取得することを目的としています。 MAX() 集計関数に基づくクエリを使用しようとしましたが、単一行しか返されません。

これに対処するには、LEFT JOIN を利用する別のアプローチを採用できます。以下は、必要な結果を効率的に達成する最適化されたクエリです。

SELECT p1.id,
       p1.security,
       p1.buy_date
       FROM positions p1
left join
            positions p2
                on p1.security = p2.security
                   and p1.buy_date < p2.buy_date
      where
      p2.id is null;
ログイン後にコピー

このクエリは、同じ証券に対して後の購入日が存在する行を除外して、テーブル自体との外部結合を実行します。その結果、最新の購入日を含む証券ごとに 1 つの行が返されます。

この最適化されたアプローチを利用することで、クエリの実行時間を大幅に短縮し、必要な情報を効率的に取得できます。

以上がSQL を使用して各証券の最新のポジションを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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