我有一个包含数百万个条目(不断增长的)的现有表,其中包括:
userid|name|etc...
1 frank ...
1 frank ...
2 joe ...
5 sam ...
1 franky ...
我需要做的是返回一个表:
place|name|total
1 franky 3
2 sam 1
3 joe 1
其中 total 是 SUM(用户 ID = 不同的用户 ID)。
目前,我正在执行一个查询来SELECT DISTINCT userid from table
然后对php中的每个返回值进行查询,我正在执行另一个查询以返回名称和sum(userid = userid)。
正如您可以假设的那样,这是非常费力的,并且现在所有值都需要很长时间。有没有办法通过执行 1 个查询来加快速度?
我认为你需要
SELECT @a:=@a+1 AS `place`, name, COUNT(userid) AS `total`
FROM `your_table`, (SELECT @a:= 0) AS a
GROUP BY userid
SELECT userid, COUNT(*)
FROM some_table
GROUP BY userid