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

如何通过SQL查询同时获取分组统计结果与原始明细行

解决方案

可以通过UNION ALL合并分组统计结果与原始数据,配合排序字段实现统计行前置的效果,单条SQL语句即可完成:

假设你的表名为your_table,执行以下查询:

SELECT Partno, Total
FROM (
    -- 生成分组统计行
    SELECT Partno, SUM(Total) AS Total, 1 AS sort_key
    FROM your_table
    GROUP BY Partno
    UNION ALL
    -- 保留原始数据行
    SELECT Partno, Total, 2 AS sort_key
    FROM your_table
) combined_data
ORDER BY Partno, sort_key, Total;

逻辑说明:

  1. 子查询通过UNION ALL拼接两部分数据:
    • 第一部分按Partno分组求和,得到每组的统计行
    • 第二部分直接取原始表的所有行
  2. 新增sort_key字段:统计行设为1,原始行设为2,确保排序时统计行排在同组原始行的最前面
  3. 最终排序规则:先按Partno分组,再按sort_key控制顺序,最后按Total匹配示例中的原始行排序

关于斜体展示:

SQL仅负责返回数据,斜体属于前端展示逻辑。可以在查询中新增标识字段区分行类型,方便前端处理:

SELECT Partno, Total, row_type
FROM (
    SELECT Partno, SUM(Total) AS Total, 1 AS sort_key, 'summary' AS row_type
    FROM your_table
    GROUP BY Partno
    UNION ALL
    SELECT Partno, Total, 2 AS sort_key, 'detail' AS row_type
    FROM your_table
) combined_data
ORDER BY Partno, sort_key, Total;

前端拿到结果后,对row_type为summary的行,将Partno和Total设置为斜体样式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:52:35