GROUP BY 子句限制 Projection 子句可指定的内容。如果您包括 GROUP BY 子句,则还必须在 GROUP BY 子句中引用 Projection 子句的选择列表中的每一 column。
如果您在包括 GROUP BY 子句的查询的选择列表中指定聚集函数以及一个或多个列表达式,则必须包括在 GROUP 子句中用作聚集或时间表达式的一部分的所有列名称。
如果在 projection 子句中指定 OLAP 窗体函数,则在 GROUP BY 子句中还必须包括该 OLAP 窗体函数之内所有的列引用。
如果您在选择列表中为列声明别名,则可在 GROUP BY 子句中以那个别名代替该列名称,在 GROUP BY 子句中需要该列的名称或别名之一。
在 GROUP BY 列表中常量表达式和 BYTE 或 TEXT 列表达式不是有效的。
如果选择列表包括 BYTE 或 TEXT 列,则您不可使用 GROUP BY 子句。此外,您不可在 GROUP BY 子句中包括 ROWID。
如果选择列表包括用户定义的数据类型的列,则不可在 GROUP BY 子句中使用该列,除非该 UDT 可使用内建的 bit-hashing 函数。必须以 CANNOTHASH 修饰符创建不可使用该内建的 bit-hashing 函数的任何 UDT,其告诉数据库服务器不可在 GROUP BY 子句中使用该 UDT。
SELECT order_num, COUNT(*), SUM(total_price) FROM items GROUP BY order_num;