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

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

DDD
DDDオリジナル
2025-01-15 17:06:47459ブラウズ

How to Retrieve the Latest Login Date for Each User in SQL?

各ユーザーの最終ログイン記録日を SQL クエリでクエリします

質問:

データベース テーブルにユーザーのログイン情報が含まれていると仮定すると、各ユーザーの最終ログイン日を取得するにはどうすればよいでしょうか?ログイン日が重複する可能性を考慮してください。

解決策:

この問題を解決するには、一般的な方法が 2 つあります:

方法 1: INNER JOIN サブクエリを使用する

このメソッドはサブクエリを利用して各ユーザーの最終ログイン日を特定し、それを使ってメイン テーブルをフィルタリングします。

<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: ウィンドウ関数

ウィンドウ関数をサポートするデータベースの場合は、より効率的な方法を使用できます。

<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>

このメソッドは、パーティション化されたデータに対して行番号の並べ替えを使用し、各ユーザーの最後の日付にランク 1 が割り当てられます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。