我正在測試SQL,並且卡在一個查詢中。這是一個無用的查詢,但我想了解它。MySQL「GROUP BY」實驗
select count(*), floor(rand()*2) as x from table_name group by x;
結果要麼是兩排,或duplicate entry '0/1' for key 'group_key'
會發生什麼導致這個錯誤?
我正在測試SQL,並且卡在一個查詢中。這是一個無用的查詢,但我想了解它。MySQL「GROUP BY」實驗
select count(*), floor(rand()*2) as x from table_name group by x;
結果要麼是兩排,或duplicate entry '0/1' for key 'group_key'
會發生什麼導致這個錯誤?
rand()將爲表中的每一行生成一個隨機數。然後,您將根據所有這些隨機數的結果進行分組。每個唯一值將得到一行。
這裏的主要觀點並不是由一些奇怪的Sinthetic數據分組。 更好的組合某些領域。 因爲mysql有一些錯誤。
像這樣 http://bugs.mysql.com/bug.php?id=58081
或者這 https://bugs.mysql.com/bug.php?id=60808
當然,它試圖創建一個tmp目錄表的唯一索引和爲什麼錯誤發生時不知何故沒有工作
? – M0rtiis
但是在floor(rand()* 2)中,每行只能生成0和1 – user2779060