Daeloce
Дата: 04.02.2013 11:08:28
Доброго времени суток всем.
Который день бьюсь не могу составить нормально запрос. Есть таблица:
a | b | c | d | e |
_______________
1 | 0 | q | p | r |
1 | 1 | q | l | i |
2 | 0 | k | p | r |
3 | 0 | q | p | r |
3 | 1 | q | s | d |
4 | 0 | q | a | s |
a и b - primary key.
Нужно составить запрос который вернет все строчки такие что c == 'q', и при этом из всех строчек с одинаковым a останется только та у которой b максимальная. Т.е. для выше приведенной таблицы для c == 'q' должна получиться следующая выдача:
a | b | c | d | e |
_______________
1 | 1 | q | l | i |
3 | 1 | q | s | d |
4 | 0 | q | a | s |
Пробовал такой запрос:
SELECT a.a, max(a.b) AS b, a.c FROM<table_name> a WHERE a.c = 'q' GROUP BY a.a, a.c
он работает, но пока в выборку не добавить остальные столбцы. Т.е. такой запрос:
SELECT a.a, max(a.b) AS b, a.c, a.d, a.e FROM<table_name> a WHERE a.c = 'q' GROUP BY a.a, a.c, a.d, a.e
уже не работает, и выдает просто все строчки где a.c = 'q', без ограничений на максимальный b