【问题标题】:Meaning of Integer in GROUP BY clauseGROUP BY 子句中整数的含义
【发布时间】:2018-02-24 03:24:55
【问题描述】:

我正在测试并尝试理解和调整由其他人编写的大型查询,希望对 GROUP BY 部分中整数的含义有所帮助。它的结构如下:

SELECT
  column1,
  column2,
  SUM(column3),
  SUM(column4),
FROM
  table1 AS a
WHERE 
  column5 <> 3
GROUP BY
  column1,
  7,
  column2;

那个 7 是做什么的?我在输出的任何地方都找不到它,或者看看它有什么效果。

【问题讨论】:

标签: mysql sql group-by


【解决方案1】:

documentation of the SELECT statement 解释:

可以使用列名、列别名或列位置在ORDER BYGROUP BY 子句中引用为输出选择的列。
列位置是整数,以 1 开头。

您查询中的GROUP BY 7 不是有效的列位置,因为SELECT 子句仅包含4 表达式。

【讨论】:

  • 好的,谢谢,我不知道这是什么意思,只在select语句中写了4件事。真正的查询在 select 语句中包含 14 个东西,我观察如果我将 7 更改为 14,它仍然有效,但 15 会导致错误。好的,为输出选择的列,它不仅可以是列,还可以是CONCAT(column6, column7),例如,不是原始表中的列,而是为输出选择的列
  • 那是因为SELECT子句中没有“第15列”。
【解决方案2】:

Group by 上使用任意整数值时,表示按第 7 列分组。 ORDER BY也可以这样做

我假设您在实际代码中提供了示例代码,SELECT 子句中必须有 7 列或多于 7 列

【讨论】:

    【解决方案3】:

    GROUP BYORDER BY 中使用的整数值是从 1 开始的列的位置(对不起数组的计数系统;))。

    您可以在官方文档here中查看更多内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 2022-09-29
      • 2019-05-17
      相关资源
      最近更新 更多