0

我有一个现有的表,其中包含数百万个条目(不断增长),其中包括:

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

其中总计是 SUM(用户 ID = 不同的用户 ID)。

目前我正在对SELECT DISTINCT userid from tablephp进行查询然后foreach返回值,我正在执行另一个查询以返回名称和sum(userid = userid)。

正如您可以假设的那样,这非常费力,并且现在需要很长时间才能处理所有值。有没有办法通过做 1 个查询来加快速度?

4

2 回答 2

1
SELECT   userid, COUNT(*)
FROM     some_table
GROUP BY userid
于 2013-11-01T08:14:50.647 回答
1

我想你需要

SELECT  @a:=@a+1 AS `place`, name, COUNT(userid) AS `total`
FROM `your_table`, (SELECT @a:= 0) AS a
GROUP BY userid
于 2013-11-01T08:16:05.857 回答