2012-05-09 31 views
0

をトップ5の顧客を取得し、そのテーブルは、今私が私私はテーブルのtbl_orders」を持っているMySQLのテーブルから

でより多くの注文を持っているTOP 5顧客をフェッチする必要がfolllowing

order_id | customer_id | grand_total 

が含まれています私は、TOP 5クストを取得したい私は

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

、以下のクエリを試してみてください。しかし、このクエリは、私だけ各顧客&の& TOTAL_ORDERSをすべてCUSTOMER_IDを与えます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 

注意count_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

は更新 – DonCallisto

+0

AHAのおかげでその作業を見てみましょう@Arifが、uがCUSTOMER_IDによってDESCグループの後でなければなりませんTOTAL_ORDERSして構文 ORDERのエラーを持っていますが、uが:) – Arif

+1

@Arif前にそれを置く:はい、私を私はそれが今のように作ったと思った。 – DonCallisto

関連する問題