MySQL группа по? - PullRequest
       30

MySQL группа по?

0 голосов
/ 22 февраля 2011

Скажем, у меня есть 5 строк в базе данных, три из них имеют идентификатор 2, две из них имеют идентификатор 1.

Три с идентификатором 2 имеют даты, скажем, например, 1-й2 июня, 2 июня, 3 июня.

У двоих с идентификатором 1 есть даты, скажем, например, 1 июля, 2 июля.

Как мне выбрать только 1 изпоследние значения для каждого идентификатора?

Когда в настоящее время используется GROUP BY id, возвращается первая строка для каждого, а не добавленная последняя.

Я хочу добавить последнюю строку ... любая идея?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 февраля 2011

Тот же Кайл R из SitePoint?

Каждый столбец в вашем списке SELECT должен либо появиться в вашем предложении GROUP BY, либо быть агрегатной функцией, в противном случае возвращаемое значение не определено спецификацией, и MySQL может предоставить вам все, что пожелает.

Подумайте, что означает группировка.Возьмите некоторый набор строк и сложите их в один ряд, представляющий группу.При этом вы должны указать MySQL, из какой строки должен приходить каждый столбец в репрезентативной строке.Если вы хотите наибольшее значение из группы, вы используете MAX.Если вы хотите наименьшее, вы используете MIN и т. Д.

1 голос
/ 22 февраля 2011

может быть что-то вроде:

select id, max(date) 
from thetable
group by id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...