繁体   English   中英

选择一个不同的值以及它在列中显示的时间总和

[英]Selecting a distinct value and the sum of times it shows up in a column

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

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 = distinct userid)。

目前我正在SELECT DISTINCT userid from table查询SELECT DISTINCT userid from table然后在php中预先返回值,我正在做另一个查询以返回名称和sum(userid = userid)。

你可以假设,这是非常繁重的,现在需要很长时间才能获得所有的值。 有没有办法通过1次查询加快速度?

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

我想你需要

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM