sql分类统计,条件中没有的为0

本文提供了一个SQL查询案例,展示了如何从核心字典表中选择特定条件的记录并计数。通过连接两个表,筛选出符合组织代码开头为'033001026'的记录,并统计每个级别的成员数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELECT dic1.CRDCT_NAME AS jcdjPsName,(
select count(*) FROM CORE_DICT dic2 LEFT JOIN JCDJ_PARTYMEMBER ON(JCDJ_PMIDENTITY_UUID=dic2.CRDCT_CHAR_CODE)  
WHERE JCDJ_PMOGNCODE like CONCAT('033001026','%' ) AND dic2.CRDCT_NAME=dic1.CRDCT_NAME
) AS jcdjPsCount FROM CORE_DICT dic1 WHERE dic1.CRDCT_LEVEL_CODE LIKE '020u_%'

### 关于SQL分类统计的实现 在 SQL 中,分类统计通常涉及使用 `GROUP BY` 子句来按指定列对数据进行分组,并结合聚合函数(如 `COUNT()`、`SUM()`、`AVG()` 等)计算每组的数据特性。以下是几种常见的分类统计方法及其示例。 #### 使用 `GROUP BY` 进行基本分类统计 当需要根据某一列或多列对数据进行分组并统计时,可以使用 `GROUP BY` 子句。例如: ```sql SELECT category_column, COUNT(*) AS record_count FROM table_name WHERE condition_column = 'specific_value' GROUP BY category_column; ``` 这条语句会返回每一类别的记录数[^1]。如果需要进一步筛选某些类别,则可以在 `HAVING` 子句中设置条件。 #### 实现带总计的分类统计 有时不仅需要查看各组的具体统计数据,还需要知道整体的合计值。可以通过 `WITH ROLLUP` 来扩展 `GROUP BY` 功能,从而自动添加汇总行。例如: ```sql SELECT COALESCE(sex, '总数') AS gender, COUNT(id) AS people_count FROM test_table GROUP BY sex WITH ROLLUP; ``` 这里利用了 `COALESCE` 函数处理可能存在的 NULL 值,在最后一行显示总体计数值[^3]。 #### 多字段分类统计 对于更复杂的场景,比如同时统计多个维度下的不同指标,可采用如下方式: ```sql SELECT department, SUM(CASE WHEN status = 'active' THEN salary ELSE 0 END) AS total_active_salary, SUM(CASE WHEN status = 'inactive' THEN salary ELSE 0 END) AS total_inactive_salary FROM employees GROUP BY department; ``` 这段代码展示了如何基于部门区分活跃员工与非活跃员工薪资总额的情况[^4]。 #### 添加自定义列辅助分析 为了增强报表灵活性,还可以引入临时计算得到的新属性作为额外参考依据: ```sql SELECT employee_id, name, position, bonus_amount = CASE position WHEN 'Manager' THEN base_salary * 0.2 WHEN 'Developer' THEN base_salary * 0.1 ELSE 0 END FROM staff_info; ``` 此例子说明了怎样动态设定奖金数额给定职位类型的雇员[^4]。 以上便是若干种典型的SQL分类统计应用实例介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值