php - MySQL 选择计数组

标签 php mysql sql group-by

我有一个包含列 ID(id order)和 IDU(id user)的表“orders”。 我想这样计算:

50 person have 1 order
30 person have 2 order
etc...

我的代码(不好)

SELECT DISTNICT count(id), count(idu)  FROM orders GROUP BY idu

请帮助我:)

最佳答案

我将其称为直方图查询的直方图。您想知道有多少用户拥有给定的订单数。解决方案是使用子查询和 group by 两次:

select cnt, count(*), min(idu), max(idu)
from (select idu, count(*) as cnt
      from orders
      group by idu
     ) ou
group by cnt;

运行此类查询时,我通常会包含用户 ID 的最小值和最大值,因此我可以轻松找到用户示例(通常是那些有很多订单的用户)。

关于php - MySQL 选择计数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39591762/

相关文章:

mysql - 如何返回基于列值并按日期分组的行?

sql - 将聚簇索引应用于 SQL Server 2012 中的 View

mysql - 是否可以在 SQL 中参数化运算符?

php - 无法使用 $_GET 方法获取 ID

php - 用PHP压缩文件目录

php - Ajax 打印数据库记录到多个字段

php - 在 PHP 和 MySQL 中使用准备好的查询删除行

php - 使用两个不同表中的 ID 和名称进行搜索

mysql - 当我删除一行时,id 号也会删除

sql - 我怎样才能提高这个慢查询的性能