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

如何用SQL分别统计各列中每个类别的总数?

解决方案

原始数据集

genderssc_b
FCentral
FCentral
FOther
MCentral
MOther

当前按两列组合分组的统计结果

gendernum_genderssc_bnum_ssc_b
F2Central2
F1Other1
M1Central1
M1Other1

期望的统计结果

gendernum_genderssc_bnum_ssc_b
F3Central3
M2Other2

要实现分别统计gender和ssc_b各分类的总数并按上述格式输出,可以用以下SQL语句:

WITH gender_summary AS (
    SELECT 
        gender,
        COUNT(*) AS num_gender,
        ROW_NUMBER() OVER (ORDER BY gender) AS row_id
    FROM your_table
    GROUP BY gender
),
ssc_b_summary AS (
    SELECT 
        ssc_b,
        COUNT(*) AS num_ssc_b,
        ROW_NUMBER() OVER (ORDER BY ssc_b) AS row_id
    FROM your_table
    GROUP BY ssc_b
)
SELECT 
    gs.gender,
    gs.num_gender,
    sbs.ssc_b,
    sbs.num_ssc_b
FROM gender_summary gs
INNER JOIN ssc_b_summary sbs ON gs.row_id = sbs.row_id
ORDER BY gs.gender;

说明

  1. 用两个CTE(公共表表达式)分别统计gender和ssc_b的分类总数,同时用ROW_NUMBER()为每个统计行生成唯一编号
  2. 通过编号将两个统计结果表关联,把两类统计结果合并到同一张表中
  3. 替换语句中的your_table为实际的表名

内容的提问来源于stack exchange,提问作者vie.luo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:55:16