我正在测试SQL而且我被困在一个查询上。这是一个无用的查询,但我想了解它。
select count(*), floor(rand()*2) as x from table_name group by x;
结果是两行,或duplicate entry '0/1' for key 'group_key'
导致此错误的是什么?
答案 0 :(得分:0)
rand()将为表中的每一行生成一个随机数。然后,您将按所有这些随机数的结果进行分组。每个唯一值将获得一行。
答案 1 :(得分:0)
这里的要点不是按一些奇怪的数据分组。 最好按某些领域分组。 因为mysql有一些bug。
喜欢这个 http://bugs.mysql.com/bug.php?id=58081
或者这个 https://bugs.mysql.com/bug.php?id=60808
当然它正在尝试在tmp表上创建一个唯一的索引,但它在某种程度上不起作用