0

テーブル「tbl_orders」があり、そのテーブルには次のものが含まれています

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 しか返されず、TOP 5 の顧客、つまりより多くの注文を取得したい

4

2 に答える 2

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 列を customer_id から order_id に変更したことに注意してください。これは機能的に違いはありませんが、コードを読む人にとってはより意味があります。

于 2012-05-09T07:56:40.777 に答える
2
SELECT customer_id , count(customer_id) as total_orders 
FROM `tbl_order` GROUP BY customer_id ORDER BY total_orders DESC LIMIT 5
于 2012-05-09T07:48:00.923 に答える