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

如何修改SQL查询以统计vicidial_list表指定STATUS状态的总计数

SQL查询修改方案

你可以通过新增STATUS过滤条件 + 分组汇总语法实现需求,两种常见写法如下:

写法一(推荐,WITH ROLLUP 简洁写法)

针对MySQL环境(vicidial默认使用MySQL)可以直接用ROLLUP语法自动生成汇总行:

SELECT 
  IFNULL(STATUS, '总计数') AS STATUS,
  COUNT(*) AS 计数
FROM vicidial_list
WHERE 
  list_id BETWEEN 2732900 AND 2732905
  AND STATUS IN ('A', 'AA', 'B', 'DROP', 'N', 'NA', 'NC', 'PDROP')
GROUP BY 1 WITH ROLLUP
ORDER BY 
  -- 控制总计数排在所有状态明细的最后
  CASE WHEN STATUS IS NULL THEN 1 ELSE 0 END,
  STATUS

写法二(通用UNION ALL写法,兼容所有SQL数据库)

如果所用数据库不支持ROLLUP,可以用UNION ALL拼接明细和汇总结果:

-- 查询各指定STATUS的计数
SELECT STATUS, COUNT(*) AS 计数
FROM vicidial_list
WHERE 
  list_id BETWEEN 2732900 AND 2732905
  AND STATUS IN ('A', 'AA', 'B', 'DROP', 'N', 'NA', 'NC', 'PDROP')
GROUP BY STATUS

UNION ALL

-- 查询所有指定STATUS的总计数
SELECT '总计数' AS STATUS, COUNT(*) AS 计数
FROM vicidial_list
WHERE 
  list_id BETWEEN 2732900 AND 2732905
  AND STATUS IN ('A', 'AA', 'B', 'DROP', 'N', 'NA', 'NC', 'PDROP')

ORDER BY 
  CASE WHEN STATUS = '总计数' THEN 1 ELSE 0 END,
  STATUS

两种写法返回的结果都会先展示你指定的8个STATUS的各自计数,最后一行显示所有符合条件记录的总计数,和你预期的1908一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:24:03