在MySQL中,以下工作: 案例1:奇怪的行爲
Select X , MAX(Y) from table
但在MS SQL Server中,你會得到 「它沒有包含在聚合函數或GROUP BY條款。」
適當的方式將
Select X, MAX(Y) from table group by X
更糟糕的是,在MySQL中,您可以: 案例2:
Select X, Y, MAX(Z) from table group by X
我的問題是,MySQL如何確定在上述情況下在Y? 情況1中的X值如何?爲什麼MySQL允許這種奇怪的行爲?
它並不決定它只是爲Y返回一個隨機值。對於這種畸變,Mysql在數據庫提供程序中是唯一的。5.7 AFAIK http://dev.mysql.com/doc/refman/5.7/en/sql- mode.html#sqlmode_only_full_group_by將默認啓用,結束此行爲。 – Mihai
您希望退還X&Y的什麼價值? – PaulF
@Mihai mysql在這方面並不是那麼獨特,sybase也有這個功能,在某些情況下,即使是teradata也支持它。 – Shadow