ホームページ > データベース > mysql チュートリアル > SQL で各ユーザーの最新のログイン日と値を確認するにはどうすればよいですか?

SQL で各ユーザーの最新のログイン日と値を確認するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-15 17:01:47
オリジナル
937 人が閲覧しました

How to Find the Latest Login Date and Value for Each User in SQL?

SQL クエリ: 各ユーザーの最後に記録された日付と値を取得します

ユーザーのログイン記録はデータベースに保存されており、そのタスクは、異なるユーザーごとに最新のログイン日とそれに対応する値を取得することです。次の表は、ユーザー名、日付、値を含むフィールドを持つこのデータを含むテーブルを示しています:

**用户名** **日期** **值**
brad 2010年1月2日 1.1
fred 2010年1月3日 1.0
bob 2009年8月4日 1.5
brad 2010年2月2日 1.2
fred 2009年12月2日 1.3

各ユーザーの最新のレコードの日付と値を取得する SQL クエリ

各ユーザーの最新の記録日と値を取得する 2 つの方法は次のとおりです:

方法 1: 自己接続を使用する

この古典的なアプローチでは、自己結合を利用してテーブルをそれ自体と照合し (ユーザー名に基づいて)、MAX() 集計関数を使用して各ユーザーの最大の日付を取得します。

<code class="language-sql">SELECT t.username, t.date, t.value
FROM MyTable t
INNER JOIN (
    SELECT username, MAX(date) AS MaxDate
    FROM MyTable
    GROUP BY username
) tm ON t.username = tm.username AND t.date = tm.MaxDate;</code>
ログイン後にコピー

方法 2: ウィンドウ関数を使用する (サポートされている場合)

ウィンドウ関数は、日付が等しいことによって引き起こされる重複レコードの問題を回避する、より効率的な代替手段を提供します。このメソッドは ROW_NUMBER() 関数を使用して、ユーザー名で分割され、日付で降順に並べ替えられた結果セットを操作します。

<code class="language-sql">SELECT x.username, x.date, x.value
FROM (
    SELECT username, date, value,
        ROW_NUMBER() OVER (PARTITION BY username ORDER BY date DESC) AS _rn
    FROM MyTable 
) x
WHERE x._rn = 1;</code>
ログイン後にコピー
これらのクエリは、各ユーザーの最新のログイン日付と値を示す次の結果を生成します:

以上がSQL で各ユーザーの最新のログイン日と値を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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