【问题标题】:Mysql : Aggregation function is not working without group byMysql:聚合函数在没有 group by 的情况下不起作用
【发布时间】:2013-04-08 10:10:32
【问题描述】:

我正在使用以下查询

SELECT count(*) as num,id,page_name FROM project_page where p_id = '256'

此查询在 mysql 版本 5.1.49-3 上运行良好,但在 mysql 5.0.32-Debian_7etch8-log 上出现错误 在两台服务器上我都有完全相同的数据库。

错误信息

#1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

如何在 5.0.31 上运行上述查询而不出现任何错误

请帮忙。

【问题讨论】:

  • 您的查询已损坏。 MySQL 无论如何都会运行它并给出不确定的结果,但几乎任何其他数据库都会给你一个错误消息。你想做什么?
  • 但我的查询没有分组,正在 5.1.49 上工作
  • 定义“工作”。在 MySQL 上,您会得到不确定的结果。请阅读手册:dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html
  • 我的意思是当我在 5.1.49 版本中使用此查询时,我会从上述查询中获得结果。其实我是小周,你能告诉我为什么会发生这种情况

标签: mysql group-by aggregation


【解决方案1】:

添加 ... GROUP BY num, id, page_name

【讨论】:

  • 如果 id 是每行的唯一标识符,那么这可能不会满足 OP 的要求。虽然不清楚他想要什么,因为他“忘记”写了。
  • 即使您不需要分组,只需按 id(主键)分组,它对我有用。
猜你喜欢
  • 2013-12-03
  • 2012-01-26
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多