Возникли проблемы с запросом на возврат самого нового заказа из любого сгруппированного набора заказов, имеющих более 1 заказа. CREATE & INSERT для тестовых данных ниже.
Этот запрос возвращает уникальный идентификатор клиента, с которым я хочу работать, а также сгруппированные идентификаторы заказа. Из этих записей мне нужен только самый последний порядок (на основе date_added).
ВЫБЕРИТЕ COUNT (customer_id), customer_id, GROUP_CONCAT (order_id) FROM orderTable GROUP BY customer_id HAVING COUNT (customer_id)> 1 ПРЕДЕЛ 10;
mysql> SELECT COUNT(customer_id), customer_id, GROUP_CONCAT(order_id) FROM orderTable GROUP BY customer_id HAVING COUNT(customer_id)>1 LIMIT 10;
+--------------------+-------------+------------------------+
| COUNT(customer_id) | customer_id | GROUP_CONCAT(order_id) |
+--------------------+-------------+------------------------+
| 2 | 0487 | F9,Z33 |
| 3 | 1234 | 3A,5A,88B |
+--------------------+-------------+------------------------+
2 rows in set (0.00 sec)
Я ищу заказы Z33 (customer_id 0487) и 3A (customer_id 1234).
Для пояснения, я не хочу заказы для клиентов, которые заказали только один раз.
Любая помощь или советы, чтобы направить меня в правильном направлении.
Пример таблицы данных:
-
- Структура таблицы для таблицы orderTable
СОЗДАТЬ СТОЛ, ЕСЛИ НЕ СУЩЕСТВУЕТ orderTable
(
customer_id
varchar (10) NOT NULL,
order_id
varchar (4) NOT NULL,
date_added
дата не равна NULL,
ПЕРВИЧНЫЙ КЛЮЧ (customer_id
, order_id
)
) ENGINE = MySAM CHARSET ПО УМОЛЧАНИЮ = latin1;
-
- Сброс данных для таблицы orderTable
INSERT INTO orderTable
(customer_id
, order_id
, date_added
) ЗНАЧЕНИЯ
(«1234», «5А», «1997-01-22»),
(«1234», «88B», «1992-05-09»),
(«0487», «F9», «2002-01-23»),
(«5799», «A12F», «2007-01-23»),
(«1234», «3А», «2009-01-22»),
(«3333», «7FHS», «2009-01-22»),
(«0487», «Z33», «2004-06-23»);
=============================================== ===========