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

データベース内の各証券の最新のポジションと ID を見つけるにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-04 13:33:39
オリジナル
692 人が閲覧しました

How to Find the Most Recent Position and ID for Each Security in a Database?

グループごとの最大値

問題:

複数を含むテーブル内の各証券の最新のポジションとそれに対応する ID を取得します。同じセキュリティを持つポジション。

データ表:

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
18084 KERX 2013-02-20
18249 KERX 0000-00-00

解決策:

LEFT JOIN と NULL フィルタリングの使用:

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

このクエリでは、LEFT JOIN を使用して位置テーブルをマージします。セキュリティによって行を照合します。条件 p1.buy_date

その後、WHERE 句により、より新しいポジションが存在する行が除外され、各証券の最新のポジションのみが残ります。

結果:

id security buy_date
27 PCS 2013-01-19
31 RDN 2012-09-19
34 HK 2013-01-19
36 SGI 2013-02-16
18084 KERX 2013-02-20

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

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