Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Group by是否始终需要聚合函数_Sql - Fatal编程技术网

Sql Group by是否始终需要聚合函数

Sql Group by是否始终需要聚合函数,sql,Sql,很遗憾,我没有表的架构。该表包含以下数据 我可以在此表上运行orderby查询,但不能运行groupby查询 工作 不起作用并出现错误列“projection\u storage.node\u name”必须出现在GROUP BY子句中或用于聚合函数中 select node_name, projection_name, row_count, used_bytes,ros_row_count, ros_used_bytes,ros_count from projection_storage

很遗憾,我没有表的架构。该表包含以下数据

我可以在此表上运行
orderby
查询,但不能运行
groupby
查询

工作

不起作用并出现错误
列“projection\u storage.node\u name”必须出现在GROUP BY子句中或用于聚合函数中

select node_name, projection_name, row_count, used_bytes,ros_row_count, ros_used_bytes,ros_count 
from projection_storage 
group by projection_name;
是否
分组依据
所选列需要在聚合函数中
(计数、最大值、最小值、总和、平均值)
,并且它们需要是数字类型(无字符串、BLOB等)

Group by是否总是需要聚合函数

在聚合查询中,
选择
中未聚合的表达式需要与
分组依据
中的表达式一致。所有其他表达式都需要使用聚合函数

分组依据
查询不必在
选择
中具有任何聚合函数

最常见的一致性类型是未聚合的表达式完全相同。但是,SQL标准还支持:

  • 表达式基于
    分组依据中的表达式(和常量)
  • 选择中缺少的
    键分组
  • 表中主键或唯一键位于分组依据中的任何列
第三个涉及一个称为“功能依赖性”的概念,大多数数据库(尚未)支持此功能

如果你有一个关于如何做某件事的问题,那就问一个新问题。提供示例数据、所需结果、所需操作的说明以及适当的数据库标记

Group by是否总是需要聚合函数

在聚合查询中,
选择
中未聚合的表达式需要与
分组依据
中的表达式一致。所有其他表达式都需要使用聚合函数

分组依据
查询不必在
选择
中具有任何聚合函数

最常见的一致性类型是未聚合的表达式完全相同。但是,SQL标准还支持:

  • 表达式基于
    分组依据中的表达式(和常量)
  • 选择中缺少的
    键分组
  • 表中主键或唯一键位于分组依据中的任何列
第三个涉及一个称为“功能依赖性”的概念,大多数数据库(尚未)支持此功能


如果你有一个关于如何做某件事的问题,那就问一个新问题。提供示例数据、所需结果、对所需操作的解释以及适当的数据库标记。

如果指定
GROUP BY
子句,则引用的列必须是
SELECT
子句中不包含
aggregate
函数的所有列


有关详细说明,请参阅。

如果指定
GROUP BY
子句,则引用的列必须是
SELECT
子句中不包含
AGGRATE
函数的所有列


请参阅详细说明。

答案是肯定的,如果使用
Group By
语句,则始终需要一个聚合函数

正如W3C所说

GROUPBY语句通常与聚合函数(COUNT、MAX、MIN、SUM、AVG)一起使用,将结果集按一列或多列进行分组

根据我的经验,我从未见过没有应用聚合函数语句的
groupby
函数


Stackoverflow上有一个关于聚合函数的链接,答案是肯定的,如果使用
Group By
语句,则始终需要聚合函数

正如W3C所说

GROUPBY语句通常与聚合函数(COUNT、MAX、MIN、SUM、AVG)一起使用,将结果集按一列或多列进行分组

根据我的经验,我从未见过没有应用聚合函数语句的
groupby
函数

Stackoverflow上关于聚合函数
的链接

select node_name, projection_name, row_count, used_bytes,ros_row_count, ros_used_bytes,ros_count 
from projection_storage 
group by projection_name;