Пишу запрос на выборку ТОП-10 покупателей. Вывести покупателей за все время я смог запросто, но встал вопрос о сортировке по дате. Записал запрос таким образом, все выполняется, но сортировки по UNIX столбцу o.date не происходит. Запрос:
SELECT o.user_id, SUM(o.total_price) as nsum, o.date as odate, u.id as uid, u.balance as balance, u.name as login
FROM s_orders as o,s_users as u
WHERE user_id!='NULL'
AND o.user_id=u.id
AND o.date >= UNIX_TIMESTAMP(DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY))
GROUP BY user_id
ORDER BY nsum DESC
LIMIT 10
чтобы была сортировка по столбцу o.date её нужно явно указать в части ORDER BY
сейчас o.date выбирается случайным образом из группы с одинаковым user_id, так как указан без групповых функций
Предположу, что вы хотите получить дату последнего заказа для каждого юзера, тогда используйте max(o.date) as odate
Сборка персонального компьютера от Artline: умный выбор для современных пользователей