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

SQL Server 2019如何仅对Food类别订单分组其余逐行显示

SQL Server 2019 指定类别聚合其余行原样展示查询实现

实现思路

通过UNION ALL拼接两个结果集完成需求:

  • 第一部分筛选所有Category不等于Food的订单,直接返回原始字段、逐行展示
  • 第二部分筛选所有Category等于Food的订单,按业务规则聚合为单行,保证两个结果集的字段数量、顺序、数据类型完全一致即可

参考代码

以下示例中Food类聚合默认取最早订单日期、计算订单总金额,你可以根据实际业务调整聚合规则:

-- 返回非Food类别的全量原始订单
SELECT
    [ID],
    [Date],
    [Customer Name],
    [Total Amount],
    [Category]
FROM Orders
WHERE [Category] != 'Food'

UNION ALL

-- 聚合Food类别订单为单行
SELECT
    CAST(NULL AS INT) AS [ID], -- 若原ID为字符串类型可替换为'Food汇总'等标识值
    MIN([Date]) AS [Date], -- 可替换为MAX([Date])取最晚订单日期
    'Food类订单汇总' AS [Customer Name], -- 单客户场景可替换为MAX([Customer Name])
    SUM([Total Amount]) AS [Total Amount], -- 可按需替换为COUNT/AVG等聚合函数
    'Food' AS [Category]
FROM Orders
WHERE [Category] = 'Food'

注意事项

如果需要对Food类订单按特定维度(比如按客户、按月份)拆分聚合,只需要在第二部分查询中增加对应的GROUP BY字段,同步调整SELECT后的字段对应关系,保证和第一部分字段类型匹配即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:27:16