我有一個數據庫,看起來像SQL語句MAX返回錯誤的列
Year Name TR AST
1 Player 1 10 3
2 Player 1 23 "-"
3 Player 1 35 5
1 Player 2 32 1
2 Player 2 29 "-"
3 Player 2 50 2
1 Player 3 74 3
2 Player 3 23 1
3 Player 3 93 9
我試圖返回球員名稱和MAX TR量。所以在這種情況下,玩家3將擁有93 TR。
我使用這個SQL查詢SQLITE
SELECT MAX(TR), name
FROM database
WHERE TR != "-"
它返回正確的MAX(TR)內,但它給了錯誤的玩家名稱。
93 Player 1
我運行了其他查詢,如MAX(AST),它也給出了錯誤的播放器名稱。無論我使用哪個MAX查詢,哪個問題出在哪裏,都會返回相同的玩家名稱。
我也試過這種試圖按照SQL的執行順序從這裏http://www.bennadel.com/blog/70-sql-query-order-of-operations.htm
FROM database
WHERE TR != "-"
SELECT MAX(TR), name
除了
SELECT name, MAX(TR)
FROM database
GROUP BY name
LIMIT 1
,並返回錯誤的TR但正確的對應名稱爲那TR。
如果它是一個問題,我不得不使用
WHERE TR != "_"
否則它會返回一個球員的名字和TR「 - 」。我不確定這是爲什麼。
查詢語句的順序有問題嗎?
我真的很驚訝,查詢在所有工作。通常,如果您一起使用列和聚合函數,則需要使用group by。 – pscuderi