Я новичок в SQL, и у меня есть таблица со следующими столбцами
+-------+--------+----+----+
| email | date | IP | ID |
+-------+--------+----+----+
И я хочу сделать что-то вроде этого:
SELECT T.email,
Max(T.date),
T.ip AS User_IP,
T.id AS ID
FROM LoginTable as T
WHERE (IP IS NOT NULL)
GROUP BY T.email
Конечно, это не сработает, потому что IP и ID не входят в (максимальную) агрегатную функцию. Но мне нужно, чтобы IP-адрес соответствовал идентификатору и дате, поэтому я не могу использовать (max) в этих столбцах, потому что я получу результаты из разных строк, а это не вариант.
Подводя итог, мне нужно:
- Одна строка для каждого уникального электронного письма (отсюда и группировка по)
- Выбрана строка с самой последней датой -> max (дата)
- Мне нужно, чтобы IP и ID были из той же строки, что и строка, выбранная max(date).