一尘不染

GROUP BY语句中用逗号分隔的整数有什么作用?

sql

我有这样的查询:

SELECT col1, col2, col3, col4, col5, SUM(col6) AS total
FROM table_name
WHERE col1 < 99999
GROUP BY 1,2,3,4,5

GROUP BY声明实际上在这里完成了什么?没有逗号分隔的整数,查询将无法正常工作。


阅读 142

收藏
2021-05-23

共1个答案

一尘不染

相当于写:

SELECT col1, col2, col3, col4, col5, SUM(col6) AS total
  FROM table_name
 WHERE col1 < 99999
 GROUP BY col1, col2, col3, col4, col5

数字是选择列表中的值/列,以列表中的顺序位置表示,从1开始。

强制使用的数字;然后添加了使用选择列表中的表达式的功能。表达式可能会变得笨拙,并且并非所有的DBMS都允许您使用GROUP
BY子句中选择列表中的“显示标签”或“列别名”,因此偶尔使用列号会有所帮助。

在您的示例中,最好使用名称-它们很简单。而且,通常,请尽可能使用名称而不是数字。

2021-05-23