[英]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
它會顯示每個mapname
的MIN(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.