使用mysql计数组

时间:2012-03-23 13:50:05

标签: mysql sql group-by aggregate-functions

我正试图为某些游戏体验制作某种“顶级”

表格就像这样

mapname     authid  country     name    time    date    weapon  server

我有这个查询,我觉得很好(每张地图显示的时间最短)

SELECT name, min( time ) AS time
FROM kz_pro15
GROUP BY mapname ASC

我的结果是

name    time
Santaaa     907.75
Zimmek*     184.82
:d  34.35
waldoo  1.04
Epiphany    8.54
Lovvon  185.51
Epiphany    64.53
menqz   73.67
waldoo  93.97
KoLkkE  207.83
q[o__o]p    78.35
Ulysses gc     T! CS    154.01
sasuke FTW  151.17
sasuke FTW  41.62
Santaaa     80.38
Santaaa     196.95
JonyBu  135.56
tiBU    93.12
Santaaa     122.04
Santaaa     36.08
EzzeqL  149.14
Zeqqe   106.75
bondiO^     110.68
INJUNABLES  102.09
Sublime     72.15
Player  106.11
=(M4t1ttU)=     158.95
foo conscience  80.98
gabe    27.21
gabe    58.5

但是现在我正在尝试计算结果,以获得之前列出的玩家有多少记录

gabe      2
sublime   1
player   13

3 个答案:

答案 0 :(得分:3)

SELECT name, count(*)
FROM (
 SELECT name, min( time ) AS time
 FROM kz_pro15
 GROUP BY mapname ASC 
) AS x
GROUP BY name

答案 1 :(得分:2)

除非name取决于mapname,否则您的查询不正确:

SELECT name, min( time ) AS time
FROM kz_pro15
GROUP BY mapname ASC

它会显示每个MIN(time)的{​​{1}},但无法保证它会以最短时间显示相关的mapname

改为使用它(注意子查询):

name

答案 2 :(得分:0)

选择     名称,     分钟(时间)AS时间,     count(*)AS记录 来自kz_pro15 GROUP BY名称ASC