「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SQLの各ユーザーの最新のログイン日を取得するにはどうすればよいですか?

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

2025-02-06に投稿しました
ブラウズ:266

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

各ユーザーの最後のログイン記録日のSQLクエリ

質問:

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

解決:

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

方法1:内側の結合を使用したサブクエリ

この方法は、サブクエリを使用して各ユーザーの最後のログイン日付を識別し、メインテーブルをフィルタリングするために使用されます。

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

方法2:ウィンドウ関数

]

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

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

このメソッドは、各ユーザーの最終日付にレベル1が割り当てられるパーティションデータの行番号ソートを使用します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3