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

total は SUM (userid = 個別のユーザー ID) です。

現在、私はクエリを実行してからSELECT DISTINCT userid from table、php で返された値を foreach にしています。別のクエリを実行して、名前と合計 (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 に答える