вопрос:
Предположим, что таблица базы данных содержит информацию о входе в систему, как мы получаем последнюю дату входа для каждого пользователя? Учитывая, что могут быть дублирующие даты входа в систему.
]Решение:
есть два общих способа решить эту проблему:
]Метод 1: Подпрограмма Использование Inner Join
]В этом методе используется подпрограмма для определения даты последней входа для каждого пользователя, а затем используется для фильтрации основной таблицы:
]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
]
Метод 2: функция Window
]]для баз данных, которые поддерживают функции окна, можно использовать более эффективный метод:
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