ホームページ >データベース >mysql チュートリアル >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 サイトの他の関連記事を参照してください。