关注分享主机优惠活动
国内外VPS云服务器

具有数据过滤功能的 Oracle 数据库(Oracle 查询过滤关键字)

Oracle 数据库使用 HAVING 子句来过滤分组结果。 通常,GROUP BY 子句用于方便使用聚合函数,例如 SUM()AVG()、等与使用 COUNT( )) 应用于分组数据,并对结果执行进一步的条件过滤器。

以下是使用HAVING子句进行数据过滤的基本示例。

 SELECT 部门 ID,SUM(工资)AStotal_salary 
FROM 员工
 BY 部门 ID
拥有 SUM(工资)  >  5000;
 pre>

此示例以 empl 开头选择 oyees 表的 Department_idsalary 列,并使用 GROUP BY 子句 I 将它们按 Department_id 配对。会成功的。 结果被分组。 接下来,使用 HAVING 子句排除工资总额大于 5,000 的部门。

请注意,HAVING 子句中的条件是针对聚合函数的结果,而不是针对原始数据。 也就是说,非聚合列不能在 HAVING 子句中直接引用,除非它们也包含在 GROUP BY 子句中。 例如,以下查询将无法正确运行,因为 salary 列不在 GROUP BY 子句中。

选择部门 ID,薪资
 FROM 员工
 BY 部门 ID
有工资 工资 5000; -- HAVING 无法引用非聚合列,从而导致错误。

要解决此问题,请将 salary 列包含在 GROUP BY 中,您可以还。 In 子句:

SELECT 部门 ID,工资
FROM 员工
GROUP BY 部门 ID,薪资
 我有工资> 5000;这是正确的,因为 class=" hljs-comment">--HAVING 引用的列也包含在 GROUP BY

中。 简短的 HAVING 子句用于过滤 Oracle 数据库中的分组结果。 这允许您使用聚合函数并对这些函数的结果应用条件。 使用 HAVING 子句时,必须小心您的目标是聚合函数的结果。 此外,如果您需要引用非聚合列,则必须将这些列包含在 GROUP BY 子句。

以上内容来自互联网,不代表本站全部观点。 欢迎关注:zhujipindao.com

未经允许不得转载:主机频道 » 具有数据过滤功能的 Oracle 数据库(Oracle 查询过滤关键字)

评论 抢沙发

评论前必须登录!