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

如何结合Count、Distinct与Where子句实现品牌关联ID统计?

解决你的品牌统计与下拉菜单需求

嘿,我来帮你搞定这个SQL问题!你原来的写法里,COUNT(DISTINCT linked_id WHERE done=0) 这种语法是不合法的,不过你的需求很清晰,咱们用CASE表达式就能完美实现,还能顺便满足下拉菜单的distinct品牌需求~

正确的SQL语句

SELECT 
  brand,
  COUNT(DISTINCT CASE WHEN done = 0 THEN linked_id END) AS count
FROM products
GROUP BY brand
ORDER BY brand;

为啥这样写能行?

  • CASE WHEN done = 0 THEN linked_id END:当done=0时返回对应的linked_id,不满足条件时返回NULL。
  • COUNT(DISTINCT ...):会自动忽略NULL值,只统计满足条件的非重复linked_id数量,完全匹配你要的「每个品牌中符合done=0的关联项数量」需求。
  • 同时,GROUP BY brand会返回所有不重复的品牌,刚好可以直接用来生成下拉菜单的选项,不用再单独写SELECT DISTINCT brand的查询,一举两得!

如果你习惯用SUM的写法,也可以这样(注意这个是统计所有满足条件的记录数,包含重复linked_id,按需选择):

SELECT 
  brand,
  SUM(CASE WHEN done = 0 THEN 1 ELSE 0 END) AS count
FROM products
GROUP BY brand
ORDER BY brand;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:40:00