GA黄金甲

sql中where和having的区别

where 和 having 子句在 sql 中均用于过滤数据,但作用规模差别:where 子句过滤单行,having 子句过滤分组后的效果集。where 子句在分组前应用,影响聚合函数的效果行;having 子句在分组后应用,影响分组行而不是单个行。where 子句可以过滤任何列,而 having 子句只能过滤聚合函数的效果。

WHERE 和 HAVING 子句的区别

在 SQL 盘问中,WHERE 和 HAVING 子句用于过滤数据行,但它们有差别的作用规模和用途。

WHERE 子句

应用于表的单个行上。

用于过滤出知足指定条件的行。

在数据分组之前应用。

影响聚合函数的效果行。

HAVING 子句

应用于分组后的效果集上。

用于过滤出知足指定条件的分组。

在数据分组之后应用。

影响分组行而不是单个行。

比照表

特征 WHERE 子句 HAVING 子句
作用规模 单行 分组
应用时机 分组前 分组后
影响 聚合函数效果行 分组行

示例

以下盘问使用 WHERE 子句过滤出销售额凌驾 1000 的订单:

SELECT * FROM orders WHERE sales_amount > 1000;

登录后复制

以下盘问使用 HAVING 子句过滤出平均销售额凌驾 1000 的所有客户:

SELECT customer_id, AVG(sales_amount) AS avg_sales
FROM orders
GROUP BY customer_id
HAVING avg_sales > 1000;

登录后复制

注重事项

WHERE 子句可以过滤任何列,而 HAVING 子句只能过滤聚合函数的效果。

HAVING 子句通常与 GROUP BY 子句一起使用,而 WHERE 子句可以自力使用。

以上就是sql中where和having的区别的详细内容,更多请关注本网内其它相关文章!

免责说明:以上展示内容泉源于相助媒体、企业机构、网友提供或网络网络整理,版权争议与本站无关,文章涉及看法与看法不代表GA黄金甲滤油机网官方态度,请读者仅做参考。本文接待转载,转载请说明来由。若您以为本文侵占了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您连忙联系GA黄金甲实时修正或删除。

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节沐日休息

QR code
【网站地图】【sitemap】