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

求助:SQL中如何查询total_bags与计算临时列的差异行

解决方法

SQL的执行逻辑是先处理FROM和WHERE子句,再执行SELECT子句,所以你在WHERE里直接引用SELECT中定义的total_calc别名是行不通的——此时这个别名还未被创建。

你可以用两种方式实现需求:

1. 子查询方式

SELECT region, total_bags, total_calc
FROM (
  SELECT 
    region,
    total_bags,
    Small_Bags + Large_Bags + XLarge_Bags AS total_calc
  FROM `coursera-data-analyst-356606.avocado_data.avocado_prices`
) AS subquery
WHERE total_bags <> total_calc

2. CTE(公共表表达式)方式(更易读)

WITH calc_bags AS (
  SELECT 
    region,
    total_bags,
    Small_Bags + Large_Bags + XLarge_Bags AS total_calc
  FROM `coursera-data-analyst-356606.avocado_data.avocado_prices`
)
SELECT region, total_bags, total_calc
FROM calc_bags
WHERE total_bags <> total_calc

两种方法都是先计算出total_calc字段,再基于计算结果过滤出不一致的行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:57:12