[英]Can someone tell me whats wrong with my slugging percentage query?
我試圖弄清楚為什么我的總基數和緩慢的查詢(它們內置在主查詢中)給我誇大的結果。 我已經在一個單獨的查詢中運行每個,並且我得到的數字更接近我想要的(但不正確)。 您將需要一些棒球的基礎知識來幫助我!
Select
bbat.playerID,
bmast.firstname,
bmast.lastname,
bbat.yearID,
bbat.TeamID,
bmast.bats,
bmast.throws,
bfield.POS,
bbat.G,
bbat.G_batting,
bbat.AB,
bbat.R,
bbat.H,
bbat.2B,
bbat.3B,
bbat.HR,
bbat.RBI,
bbat.HBP,
bbat.SF,
(Sum(H)+(Sum(2B)*2)+(Sum(3B)*3)+(Sum(HR)*4)) as 'TB',
bbat.BB,
bbat.SO,
(Sum(BB)/Sum(SO)) as 'BB/K',
(SUM(H)/Sum(AB)) as 'Avg',
((Sum(H)+Sum(BB)+Sum(HBP))/(Sum(AB)+Sum(BB)+Sum(HBP)+Sum(SF))) as 'OBP',
(Sum(H)+(Sum(2B)*2)+(Sum(3B)*3)+(Sum(HR)*4))/Sum(AB) as 'Slugging',
(((Sum(H)+Sum(BB)+Sum(HBP))/(Sum(AB)+Sum(BB)+Sum(HBP)+Sum(SF)))+((Sum(H)+(Sum(2B)*2)+(Sum(3B)*3)+(Sum(HR)*4))/Sum(AB))) as 'OPS',
bbat.SB,
bbat.CS,
(Sum(SB)/(Sum(SB)+Sum(CS))) as 'Stolen Base %',
((Sum(H)+Sum(BB))*(Sum(H)+(Sum(2B)*2)+(Sum(3B)*3)+(Sum(HR)*4)))/(Sum(AB)+Sum(BB)) as 'Runs Created'
from
baseball.batting bbat
inner join ( Select PlayerID,
min(nameFirst) as 'firstname',
min(nameLast) as 'lastname',
bats,
throws
from
baseball.master
group by
playerID,
nameFirst,
nameLast ) bmast
on bbat.playerID = bmast.PlayerID
inner join ( Select PlayerID,
POS
from baseball.fielding ) bfield
on bbat.playerID = bfield.playerID
where
yearID = '2013'
and AB > 60
and POS != 'P'
Group by
bmast.playerID,
bmast.firstname,
bmast.lastname;
如果您願意,我可以發布我的個人查詢。 請告訴我!
雖然MySQL允許您從GROUP BY
排除非聚合字段,但它可能會產生不希望的結果。 起點是將GROUP BY
SELECT
列表中的所有非聚合字段都包括在內。 您的查詢可能還會有其他問題。
更新:此子查詢是有問題的,您要使用兩個值的MIN()
,但還要對它們進行分組(這會使MIN()
,並且您不按蝙蝠/投擲進行分組。
Select PlayerID,
min(nameFirst) as 'firstname',
min(nameLast) as 'lastname',
bats,
throws
from
baseball.master
group by
playerID,
nameFirst,
nameLast ) bmast
我猜你在找這個
Select
bbat.playerID,
bmast.firstname,
bmast.lastname,
bbat.yearID,
bbat.TeamID,
bmast.bats,
bmast.throws,
bfield.POS,
bbat.G,
bbat.G_batting,
bbat.AB,
bbat.R,
bbat.H,
bbat.2B,
bbat.3B,
bbat.HR,
bbat.RBI,
bbat.HBP,
bbat.SF,
((H)+((2B)*2)+((3B)*3)+((HR)*4)) as 'TB',
bbat.BB,
bbat.SO,
((BB)/(SO)) as 'BB/K',
((H)/(AB)) as 'Avg',
(((H)+(BB)+(HBP))/((AB)+(BB)+(HBP)+(SF))) as 'OBP',
((H)+((2B)*2)+((3B)*3)+((HR)*4))/(AB) as 'Slugging',
((((H)+(BB)+(HBP))/((AB)+(BB)+(HBP)+(SF)))+(((H)+((2B)*2)+((3B)*3)+((HR)*4))/(AB))) as 'OPS',
bbat.SB,
bbat.CS,
((SB)/((SB)+(CS))) as 'Stolen Base %',
(((H)+(BB))*((H)+((2B)*2)+((3B)*3)+((HR)*4)))/((AB)+(BB)) as 'Runs Created'
from
....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.