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中的真正术语。。。子句可以单独执行,所以您可以看到它的作用。。