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

SSMS中按国家统计电商平均发货时长的SQL报错解决

报错原因

你写的SQL存在括号位置错误:AVG()聚合函数的右括号放置位置不对,把列别名定义as DaysToShip写到了AVG()的括号内部,导致SQL Server解析函数结构失败,抛出"'AVG' is not a recognized built-in function name"的报错。

正确SQL写法

核心逻辑是先逐行计算单条订单的发货间隔天数,再按国家维度对间隔天数求平均值,修正括号位置后的可运行代码如下:

SELECT
    Country,
    AVG(DATEDIFF(day, [Order Date], [Shipping Date])) AS DaysToShip
FROM PortfolioProject..Ecommerce
GROUP BY Country
语法逻辑说明
  • DATEDIFF(day, [Order Date], [Shipping Date]):逐行计算每条订单从下单日期到发货日期的间隔天数,该计算在聚合操作前逐行完成
  • AVG(...):对逐行计算得到的发货间隔天数,按分组维度求平均值
  • AS DaysToShip:为聚合计算得到的平均发货时长列设置别名,别名定义必须放在聚合函数的括号外部
  • GROUP BY Country:指定聚合分组维度为国家,和SELECT子句中的非聚合字段保持对应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:33:24