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