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

如何用BigQuery SQL统计仅今年售出的产品数量(不使用NOT IN/join)

统计仅今年售出产品数量的BigQuery SQL实现(无需NOT IN/JOIN)

当然可以,用聚合分组的方式就能实现需求,完全不需要依赖NOT IN或者JOIN语句。以下是两种可行的写法:

方法一:通过MIN/MAX判断年份唯一性

利用MIN()和MAX()函数,判断某个产品的所有销售年份的最小值和最大值都等于今年,说明该产品只在今年有销售记录:

SELECT COUNT(DISTINCT Product) AS only_this_year_product_count
FROM your_table_name
GROUP BY Product
HAVING MIN(Year) = EXTRACT(YEAR FROM CURRENT_DATE()) 
   AND MAX(Year) = EXTRACT(YEAR FROM CURRENT_DATE())

方法二:统计不同年份数量

先分组统计每个产品涉及的不同年份数量,筛选出仅含1个年份且该年份为今年的产品,再统计总数:

SELECT COUNT(Product) AS only_this_year_product_count
FROM (
  SELECT Product
  FROM your_table_name
  GROUP BY Product
  HAVING COUNT(DISTINCT Year) = 1 
     AND MAX(Year) = EXTRACT(YEAR FROM CURRENT_DATE())
)

逻辑验证(针对你的示例数据)

对示例数据分组后:

  • 产品A:仅2022年有记录,满足条件;
  • 产品B:涉及2021、2022两个年份,不满足;
  • 产品C:仅2021年有记录,不满足;
    最终统计结果为1,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:10:49