MySQL" GROUP BY"实验

时间:2015-09-05 04:22:06

标签: mysql sql mysql-error-1064

我正在测试SQL而且我被困在一个查询上。这是一个无用的查询,但我想了解它。

select count(*), floor(rand()*2) as x from table_name group by x;

结果是两行,或duplicate entry '0/1' for key 'group_key'

导致此错误的是什么?

2 个答案:

答案 0 :(得分:0)

rand()将为表中的每一行生成一个随机数。然后,您将按所有这些随机数的结果进行分组。每个唯一值将获得一行。

答案 1 :(得分:0)

这里的要点不是按一些奇怪的数据分组。 最好按某些领域分组。 因为mysql有一些bug。

喜欢这个 http://bugs.mysql.com/bug.php?id=58081

或者这个 https://bugs.mysql.com/bug.php?id=60808

当然它正在尝试在tmp表上创建一个唯一的索引,但它在某种程度上不起作用