2012-05-09 4 views
0

У меня есть таблица «tbl_orders», что таблица содержит folllowingFetch топ 5 клиентов из Mysql таблицы

order_id | customer_id | grand_total 

Теперь мне нужно, чтобы извлечь из клиента TOP 5, которые имеют больше заказов со мной

я стараюсь ниже запрос,

"SELECT customer_id , count(customer_id) as total_orders FROM `tbl_order` group by customer_id" 

Но этот запрос только дать мне все customer_id & total_orders каждого клиента & я хочу принести ТОП 5 Custo mer, т. е. имея больше заказов со мной

ответ

3

Добавив к ответу DonCallisto, вы также можете сортировать по наибольшему количеству заказов. В противном случае вы не получите топ-5

SELECT customer_id , count(order_id) as total_orders 
FROM `tbl_order` 
GROUP BY customer_id 
ORDER BY total_orders DESC 
LIMIT 5 

Примечание Я также изменил столбец счета от Customer_ID до Order_ID. Это не имеет никакого значения функционально, но для кого-то, кто читает ваш код, имеет смысл.

+0

Отличный @normer, благодаря миллиону – Arif

2
SELECT customer_id , count(customer_id) as total_orders 
FROM `tbl_order` GROUP BY customer_id ORDER BY total_orders DESC LIMIT 5 
+0

@Arif взглянуть на обновление – DonCallisto

+0

ага благодаря своей рабочей, но и есть ошибка в вашем синтаксисе ORDER BY total_orders должны быть после DESC группы по Customer_ID, но у положить его перед :) – Arif

+1

@Arif: да, я подумал, что я сделал это так, как сейчас. – DonCallisto

Смежные вопросы