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

如何用单条SQL语句同时获取分组计数与对应分组总计数?

解决方案

可以使用窗口函数实现需求,一次查询就能同时获取两种维度的计数,无需分开查询再合并。

具体SQL语句如下:

SELECT 
    name,
    colour,
    COUNT(1) AS name_colour_count,  -- 每个name+colour组合的个体计数
    COUNT(1) OVER (PARTITION BY colour) AS colour_total_count  -- 对应colour分组的总计数
FROM table
GROUP BY name, colour;

语句说明

  • COUNT(1) AS name_colour_count:和你原第一个查询逻辑一致,统计每组name+colour的行数。
  • COUNT(1) OVER (PARTITION BY colour):窗口函数,以colour为分区维度,计算每个colour分组的总行数(即你第二个查询的结果),并将该值填充到对应colour的每一行中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:34:51