【问题标题】:MySQL query to find customers who have made the most ordersMySQL查询查找订单最多的客户
【发布时间】:2010-03-16 00:35:54
【问题描述】:

tbl_customer.id 是客户的 id

tbl_order.customer_id

一个查询将选择 tbl_order 中具有 4 条或更多记录的所有客户

【问题讨论】:

  • Michael,我今天早上写到凌晨 1 点,然后早上 7 点起床,所以我很累,这让我更难提出问题
  • 大声笑,但我梦想着编码!

标签: sql mysql


【解决方案1】:
SELECT tbl_order.customer_id, COUNT(*)
    FROM tbl_order 
    GROUP BY customer_id 
    HAVING COUNT(*) > 4

【讨论】:

    【解决方案2】:
    select customer.id, count(*) as num_orders
    from customer
    inner join tbl_order ON (tbl_order.customer_id = customer.id)
    group by customer.id
    having num_orders >= 4;
    

    【讨论】:

      【解决方案3】:

      综合以上答案(谢谢)

      我的结局

      SELECT c.first_name,c.SURNAME,c.ADDRESS1,c.CREATED ,COUNT(*) AS num_orders 
      FROM tbl_customer AS c
      INNER JOIN tbl_order_head AS o ON (o.customer_id = c.id) 
      GROUP BY c.id 
      HAVING num_orders >= 4 ORDER BY num_orders DESC;
      

      【讨论】:

      • tbl_order_head 有一个“已创建”日期字段我可以重新调整上面的查询以按最近销售/显示最近销售日期的顺序列出
      猜你喜欢
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多