You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询筛选cr_number大于2记录失败,WHERE子句未生效问题求助

问题分析

你原查询存在两个核心问题:

  • 缺失表关联逻辑:仅声明了主表t_sup_supplier,没有写JOIN t_sup_cr就直接使用ON关联条件,属于基础语法错误
  • 聚合结果过滤逻辑错误:cr_number是分组后的聚合计算值,WHERE子句只能过滤分组前的原始数据,无法作用于聚合结果,需要使用HAVING子句实现这类过滤需求

修正后的查询语句

SELECT
sup.sup_id,
sup.sup_name_en AS name,
COUNT(sup_cr.sup_id) AS cr_number
FROM t_sup_supplier AS sup
JOIN t_sup_cr ON sup_cr.sup_id_from = sup.sup_id
GROUP BY sup.sup_id, sup.sup_name_en
HAVING COUNT(sup_cr.sup_id) > 2;

补充说明

如果你的数据库支持在HAVING子句中引用SELECT中定义的别名(如MySQL、PostgreSQL较新版本),可以将HAVING条件简化为HAVING cr_number > 2;上述写法直接使用完整聚合表达式,兼容性更强,可适配所有标准SQL数据库。

内容的提问来源于stack exchange,提问作者Patryk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:57:04