【问题标题】:SQL what will return by simply GROUP BYSQL 将通过简单的 GROUP BY 返回什么
【发布时间】:2017-04-12 07:12:22
【问题描述】:

对于 SQL,我知道组通常与聚合函数一起使用。但是,如果单独使用,会返回什么?

例如:

SELECT continent FROM world
GROUP BY continent 

说 world 是一个包含世界上所有国家和其他信息(包括大陆)的表,这个查询会返回给我什么?

谢谢!!

【问题讨论】:

  • 我相信你可以自己测试,不是吗?
  • 为什么在不使用聚合函数(例如 MAX、SUM、COUNT)时进行 GROUP BY?一般的 GROUP BY 规则还说:如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须要么标识一个分组列,要么是一个集合函数的参数!
  • 较新的 MySQL 版本将在此处引发错误(除非在兼容模式下),较旧的版本将返回不可预知的结果。
  • 你为什么要问一些你可以自己检查的东西,至少要测试一下,然后问为什么会这样而不是这样?
  • 我实际测试了它,它给我返回了一个随机表

标签: mysql sql


【解决方案1】:

它将以类似于

的错误结束

...在选择列表中无效,因为它不包含在任何一个列表中 聚合函数或 GROUP BY 子句。

因为使用 group by 您必须按所有选定的字段进行分组,或者对它们使用 SUM、MAX 等函数。

【讨论】:

    【解决方案2】:

    此查询将返回一个错误,因为当您分组时,您需要 SELECT 子句中的项作为您分组依据的事物或聚合函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      相关资源
      最近更新 更多