簡體   English   中英

使用mysql計數組

[英]Count group by using mysql

我正在嘗試為某些游戲策略創建“頂部”

桌子是這樣的

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
SELECT name, count(*)
FROM (
 SELECT name, min( time ) AS time
 FROM kz_pro15
 GROUP BY mapname ASC 
) AS x
GROUP BY name

除非name取決於mapname ,否則查詢不正確:

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

它會顯示每個mapnameMIN(time) ,但不能保證它會以最短的時間顯示相關name

改用它(並注意子查詢):

SELECT k.name
     , COUNT(*) AS cnt
FROM kz_pro15 AS k
  JOIN
    ( SELECT mapname 
           , MIN(time) AS time
      FROM kz_pro15
      GROUP BY mapname
    ) AS g
    ON (g.mapname, g.time) = (k.mapname, k.time)
GROUP BY k.name

SELECT名稱,min(time)AS時間,count(*)AS記錄FROM kz_pro15 GROUP BY name ASC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM