Я использую SUM для добавления одного из полей, но для остальных полей мне бы хотелось, чтобы они были получены из последней записи.mysql SUM aggregate with ORDER BY
Текущий запрос:
SELECT cu.*,
SUM(cu.use_count) AS total_use_count
FROM coupons_used cu
GROUP BY cu.coupon_id;
Текущий результат:
Array
(
[0] => stdClass Object
(
[id] => 1
[timestamp] => 2015-05-08 04:52:31
[coupon_id] => 133
[user_id] => 104
[use_count] => 1
[redemption_code] => 123412341234
[total_use_count] => 2
)
)
Это временная метка из первой записи, и я хотел бы, чтобы это было от последнего. Я попытался добавить ORDER BY cu.timestamp
как ASC
, так и DESC
, но я получаю тот же результат. total_use_count
должен оставаться таким же, как есть, но как мне получить оставшиеся поля от последней записи (на каждую группу)?
Есть ли способ получить всю последнюю строку? 'Redemption_code (UNIQUE)' именно поэтому мне нужна последняя запись. – Jacksonkr
@Jackson Поскольку 'redemption_code' не является сгруппированным элементом, вам нужно присоединиться к' id' и 'timestamp'. на стол, чтобы получить его. Похоже, что spencer7593 получил вам рабочий ответ, поэтому я не буду воспроизводить его здесь. – dasblinkenlight