2013-11-01 3 views
0

나는 항목 (성장) 그 구성의 수백만 기존의 테이블이 있습니다이 컬럼에 표시

userid|name|etc... 

1 frank ... 
1 frank ... 
2 joe  ... 
5 sam  ... 
1 franky ... 

내가 뭘해야 테이블을 반환이다 중 : 총은 SUM (사용자 ID = 고유 사용자 ID)이다

place|name|total 

1 franky 3 
2 sam  1 
3 joe  1 

.

현재 SELECT DISTINCT userid from table에 대한 쿼리를 수행하고 foreach가 PHP에서 값을 반환하면 이름과 합계 (userid = userid)를 반환하는 또 다른 쿼리를 수행하고 있습니다.

이 값은 매우 부담 스러우며 모든 값이 매우 오래 걸립니다. 1 개의 쿼리를 수행하여 속도를 향상시킬 방법이 있습니까?

답변

1

난 당신이

SELECT @a:[email protected]+1 AS `place`, name, COUNT(userid) AS `total` 
FROM `your_table`, (SELECT @a:= 0) AS a 
GROUP BY userid 
+0

이 큰 덕분에 작동을 필요가 있다고 생각합니다! – flip66

1
SELECT userid, COUNT(*) 
FROM  some_table 
GROUP BY userid