Я пытаюсь придумать один запрос, который будет принимать следующую таблицу (названный sales
):MYSQL SUM с внутренним Выбор возвращения МАХ Дата
user_id | order_total | order_date |
1 | 100 | 2012-01-01 |
1 | 200 | 2013-06-04 |
1 | 150 | 2012-01-08 |
2 | 100 | 2015-02-01 |
3 | 105 | 2014-10-27 |
И возвратит следующее:
user_id | order_total | num_orders | last_order |
1 | 450 | 3 | 2013-06-04 |
3 | 105 | 1 | 2014-10-27 |
2 | 100 | 1 | 2015-02-01 |
до сих пор я придумал следующий SQL, чтобы получить результат:
SELECT
DISTINCT a.user_id,
SUM(order_total) AS order_total,
COUNT(*) AS num_orders,
b.order_date as last_order
FROM
`sales` AS a,
(
SELECT
order_date,
user_id
FROM `sales`
ORDER BY order_date DESC
) AS b
WHERE a.user_id = b.user_id
GROUP BY user_id
ORDER BY order_total DESC
р- РОБЛЕМА, однако, что она возвращает:
user_id | order_total | num_orders | last_order |
1 | 1350 | 9 | 2013-06-04 |
3 | 105 | 1 | 2014-10-27 |
2 | 100 | 1 | 2015-02-01 |
Есть ли какой-нибудь способ, чтобы предотвратить суб-запрос от влияния на результаты Сум и граф? Или я об этом ошибаюсь?
Попробуйте указать, с помощью которого user_id вам группа - a.user_id или b.user_id –
Дата последнего заказа на 1 является 2013-06-04? Или 2015-01-08? –
@GiorgiNakeuri извините, моя ошибка - я скорректировал данные примера. – user984976