#mysql
#mysql
Вопрос:
Пример:
Столбцы:
id, date(mysql date), other fields....
Строки:
1, 2011-01-11
2, 2011-31-10
3, 2011-30-10
4, 2011-25-09
5, 2011-25-09
6, 2011-25-09
7, 2011-21-09
Оператор Mysql select для выбора последней даты каждого месяца в заданных строках… не просто уникальный… если за месяц последняя дата содержит более 1 строки, тогда необходимо повторно просмотреть все строки этой последней даты.
Учитывая приведенный выше пример, оператор select должен дать следующий набор результатов
1, 2011-01-11
2, 2011-31-10
4, 2011-25-09
5, 2011-25-09
6, 2011-25-09
Ответ №1:
Это даст вам правильные строки:
SELECT *
FROM your_table
WHERE date_col IN (
SELECT MAX(date_col)
FROM your_table
GROUP BY MONTH(date_col)
)
Ответ №2:
Ваша спецификация конфликтует. Тем не менее, следующий запрос извлечет все строки с самой высокой датой за месяц.
SELECT * FROM your_table WHERE date =
(SELECT MAX(date) FROM your_table
GROUP BY DATE_FORMAT('%Y-%m'), date_column))