作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在按 id 分组后计算不同的值,然后使用以下查询将它们插入到另一个表中:
INSERT INTO table_aggregate
(id_aggregate, aggregate_column)
(SELECT id_detail, COUNT(DISTINCT(detail_column))
FROM table_detail
GROUP BY id_detail)
ON DUPLICATE KEY UPDATE
aggregate_column = COUNT(DISTINCT(detail_column));
运行时出现错误:
ERROR 1111 (HY000): Invalid use of group function
如果我运行查询的 SELECT 语句部分,它工作正常。为什么会抛出这个错误?
最佳答案
您不能在 UPDATE 部分使用 COUNT
。使用 VALUES(aggregate_column)
代替:
INSERT INTO table_aggregate
(id_aggregate, aggregate_column)
(SELECT id_detail, COUNT(DISTINCT(detail_column))
FROM table_detail
GROUP BY id_detail)
ON DUPLICATE KEY UPDATE
aggregate_column = VALUES(aggregate_column);
关于mysql - 在 VALUE SELECT 语句中使用 GROUP BY 插入 - 错误 1111 (HY000) : Invalid use of group function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41523174/
我是一名优秀的程序员,十分优秀!