2010-11-24 2 views
0

Я ищу решение этой:MySQL: Найти топ-3-клиентов в сроки

клиент может разместить заказ с ценой х в то время у. Клиент может иметь неограниченное количество заказов.

Я хочу получить z топ-клиентов с их порядковым количеством в течение периода (например, месяца).

Я застрял в суммировании и упорядочении/фильтрации до верхней части z.

Можете ли вы мне помочь? Благодаря!

+0

Было бы полезно, если вы разместите структуру таблицы и запрос, который вы сделали до сих пор, чтобы мы могли видеть, что вы пробовали. – Paul

ответ

0

Учитывая таблицу заказов с customer_id, сумма и время столбцов, вы должны быть в состоянии сделать что-то вроде этого:

SELECT customer_id, sum(amount) AS total 
FROM orders 
GROUP BY customer_id 
WHERE time BETWEEN start AND end 
ORDER BY total DESCENDING 
LIMIT 3 
0

Это псевдо-код, но я хотел бы использовать что-то вроде:

select sum(order_total), client_id 
from orders 
where order_date between X and Y 
group by client_id 
order by sum(order_total) 
limit 0, 10 
Смежные вопросы