【发布时间】:2014-12-30 18:57:25
【问题描述】:
我在 MySQL 中运行一个查询,我按四列分组并选择了很多东西,包括我分组的四个值。但是当我运行查询时出现此错误:
Duplicate entry '92-0-10-7' for key 'group_key'
92、0、10 和 7 都是特定行的四个分组列的值(实际上,我检查过,有 63 行适合这些参数)。但我不知道这意味着什么,也不知道如何正确运行我的查询。
我的查询:
Create table table2 as
Select round(x, 0) as x, round(a, 0) as a, round(b, 0) as b, c, d, e, f
from table1
group by round(x, 0), round(a, 0), round(b, 0), c
92 适合 x、0 a、10 b 和 7 c。
我在这张表上没有索引。
谢谢!
【问题讨论】:
-
您的查询是
SELECT,而该错误消息可能只出现在 DML(UPDATE或INSERT)。因此,错误消息是由另一个查询引起的。 -
另一个查询是什么意思?我只运行这个查询,它仍然给我这个消息。另外,FWIW,实际查询是一个create table命令,但唯一的区别是select前面有一个“create table table2 as”。
-
@zerkms 我确实尝试在没有创建表部分的情况下运行相同的查询并且没有任何改变,所以我认为这并不重要。
-
GROUP BY在此查询中没有意义。没有聚合函数,这里...ROUND()不是聚合函数。 d、e 和 f 的值无法正确确定。你真的是说SELECT DISTINCT吗?否则,是分组的目的吗? -
可能是 MySQL 的 bug:bugs.mysql.com/bug.php?id=62755