Для начала я использую MySQL 4.0.27 и мне нужно решение для этого
только версия.
Я использую MAX () в операторе SELECT с другими полями, и мне нужно получить значение других полей, соответствующее значению поля MAX.
Предположим ниже данные из таблицы Заказы :
--------------------------------------------------------------
Product | CategoryID | Date | OrderBy
--------------------------------------------------------------
TV | 1 | 2011-11-27 | John
Pen | 1 | 2011-11-29 | David
Mouse | 2 | 2011-11-30 | Mike
Printer | 1 | 2011-10-19 | Rozi
HDD | 2 | 2011-11-02 | Peter
----------------------------------------------------------------
Мое требование - получить количество заказов в каждой категории с именами лиц с недавним Заказом, что означает, что мне нужен следующий результат:
--------------------------------------------------------------------------
CategoryID | OrderBy | Order_Count | Date
-------------------------------------------------------------------------
1 | John | 3 | 2011-11-29
2 | Peter | 2 | 2011-11-30
Если я использую ниже SQL:
SELECT CategoryID, OrderBy, COUNT(OrderID) AS Order_count, MAX(Date)
FROM Orders
GROUP BY CategoryID
Я не получаю желаемого результата. Я получаю другое имя в OrderBy вместо того же имени, которое падает против извлеченной даты.
Может кто-нибудь подсказать, как этого добиться в MySQL 4.0.x, где у нас есть ограничение на неиспользование внутреннего запроса или таких функций, как GROUP_CONCAT.
Заранее спасибо.