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

如何在同一张表中结合WHERE子句多次使用SQL COUNT()函数

解决方案

原表结构

namenumberdate
name191104'2022-12-01'
name211161'2022-12-02'

当前的两个查询语句

select count(name) from table
    where
        created_at between
            '2022-12-01' and '2022-12-10' and
        terminal_id like '911%'
select count(name) from table
    where
        created_at between
            '2022-12-01' and '2022-12-10' and
        terminal_id like '111%'

合并后的查询语句

可以通过条件聚合实现一次查询得到目标结果,两种写法均可行:

写法一(COUNT配合CASE)

SELECT
    COUNT(CASE WHEN terminal_id LIKE '911%' THEN name END) AS `911like`,
    COUNT(CASE WHEN terminal_id LIKE '111%' THEN name END) AS `111like`
FROM `table`
WHERE created_at BETWEEN '2022-12-01' AND '2022-12-10';

写法二(SUM配合CASE)

SELECT
    SUM(CASE WHEN terminal_id LIKE '911%' THEN 1 ELSE 0 END) AS `911like`,
    SUM(CASE WHEN terminal_id LIKE '111%' THEN 1 ELSE 0 END) AS `111like`
FROM `table`
WHERE created_at BETWEEN '2022-12-01' AND '2022-12-10';

说明

两种写法核心都是用CASE WHEN判断字段匹配条件,再通过聚合函数统计符合要求的记录数。相比两次单独查询,这种方式仅需扫描一次表,效率更高,且直接输出你需要的列格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:50:10