Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用分组法进行分割和计数_Mysql - Fatal编程技术网

Mysql 使用分组法进行分割和计数

Mysql 使用分组法进行分割和计数,mysql,Mysql,我有一张像这样的桌子 uid programid 1 3 1 4 2 5 2 6 3 3 ... 但是想象一下,在一百万条线上,我想要得到的是 使用mysql可以做到这一点吗?百分比并不是那么重要,但我真的很想得到“集群”部分 感谢您的帮助:您可以使用如下所示的表表达式预计算数据。如果使用MySQL 8.x,您可以使用更友好的CTE。例如: select favorites, users, case when users = 0 then 0 else mod

我有一张像这样的桌子

uid programid
1   3
1   4
2   5
2   6
3   3
...
但是想象一下,在一百万条线上,我想要得到的是

使用mysql可以做到这一点吗?百分比并不是那么重要,但我真的很想得到“集群”部分


感谢您的帮助:

您可以使用如下所示的表表达式预计算数据。如果使用MySQL 8.x,您可以使用更友好的CTE。例如:

select
  favorites,
  users,
  case when users = 0 then 0 else mod(users - 1, 5) end as cluster
from (
   select
    favorites,
    count(*) as users
  from (
    select uid, count(*) as favorites
    from t
    group by uid
  ) x
  group by favorites
) y
order by favorites

不知道你在问什么..我想你是在问MySQL如何在磁盘上存储数据?嗨,雷蒙德,不太清楚。我的目的是获取一个SQL查询来获取一些统计数据。我的目的是获取一个SQL查询以获得一些统计数据。下次看到并感谢lor的帮助@the impaler:you's have a MySQL 5.7 working query?@glmrenard这是针对MySQL 5.x的。它不使用CTE。谢谢,我不确定是否理解,t中的“t”从何而来,对于x和Y,将t替换为表名。您没有指定表名,所以我使用了t作为占位符。现在我需要仔细考虑才能理解它@glmrenard小提示这些子查询传递的表是FROM中的真正术语。。。子句可以单独执行,所以您可以看到它的作用。。