【问题标题】:Show recurrent clients in this query在此查询中显示经常性客户
【发布时间】:2016-06-23 16:48:37
【问题描述】:

我有一个查询,显示每下订单数量的客户数量。

select quantidade_pedidos, count(*)
from (select count(*) as quantidade_pedidos, c.id
      from pedidos p inner join
           clientes c
           on p.cliente_id = c.id
      where p.aprovado = 1
      group by c.id
     ) x
group by quantidade_pedidos;

我想让下了 2 个订单的客户列在 1 中,下了 3 个订单的客户也列在 2 中,以此类推。

现在它只按订单数量分组:

1 个订单 - 700 个客户
2 个订单 - 300 个客户
3 个订单 - 100 个客户

这 300 个客户必须出现在 1 个订单中,因为他们下了 1 个订单和 2 个订单,而这 100 个客户必须出现在 2 个订单组中,因为他们下了两个订单。

如何更正此查询? 抱歉,如果有点混乱。

谢谢

【问题讨论】:

    标签: mysql group-by subquery


    【解决方案1】:

    如果我理解,那么您想要的也是通过添加第二个 group by 来按订单数分组。

    select quantidade_pedidos, count(*) as order_count
    from (select count(*) as quantidade_pedidos, c.id
          from pedidos p inner join
               clientes c
               on p.cliente_id = c.id
          where p.aprovado = 1
          group by c.id
         ) x
    group by quantidade_pedidos, order_count;
    

    【讨论】:

    • 您的查询有误。 '不能在'order_count'上分组'
    • 啊哈!你是对的。你能帮我更好地理解你想要做什么。我不认为我完全拥有它。
    猜你喜欢
    • 1970-01-01
    • 2018-06-20
    • 2015-10-13
    • 2017-02-01
    • 2013-04-23
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多