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

SQL を使用して各証券の最新のポジションを見つけるにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-04 12:43:41
オリジナル
951 人が閲覧しました

How to Find the Most Recent Position for Each Security Using SQL?

グループごとの最大値

問題:

以下から各銘柄の最新ポジションを取得しますテーブル:

id security buy_date
26 PCS 2012-02-08
27 PCS 2013-01-19
28 RDN 2012-04-17
29 RDN 2012-05-19
30 RDN 2012-08-18
31 RDN 2012-09-19
32 HK 2012-09-25
33 HK 2012-11-13
34 HK 2013-01-19
35 SGI 2013-01-17
36 SGI 2013-02-16
KERX 2013-02-20
KERX 0000-00-00

解決策:

次のクエリは、対応する ID とともに各証券の最大購入日を取得します:

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;
ログイン後にコピー

このクエリは、左結合を使用して各証券の最新のポジションを効率的に見つけます。各証券の購入日を比較し、新しい購入日が存在しない行のみを選択します。この最適化されたソリューションにより、サブクエリベースのアプローチと比較して、より速い実行時間で正確な結果が得られます。

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

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