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

SQL实现同服务行的Qty求和及完整字段展示需求

解决方案:合并相同Service行并计算汇总值

因为每个Service_name对应的Ident和Price是唯一的,我们只需要调整GROUP BY子句,把这些字段纳入分组(或者用聚合函数提取),同时完成Qty汇总和总Value的计算即可。

方法一:标准GROUP BY写法(推荐)

这种写法适用于绝大多数数据库(MySQL、PostgreSQL、SQL Server等),逻辑清晰且符合SQL标准:

SELECT 
    Service_name,
    Ident,
    Price,
    SUM(Qty) AS Total_Qty,
    SUM(Qty) * Price AS Total_Value
FROM NewOne
GROUP BY Service_name, Ident, Price;
  • 把Ident和Price加入GROUP BY后,分组逻辑不会被破坏(因为同Service下这两个字段值一致)
  • SUM(Qty)得到该Service的总数量,乘以Price直接算出总价值Total_Value

方法二:用聚合函数提取固定值

如果不想在GROUP BY中添加过多字段,也可以用MAX()或MIN()提取同Service下固定的Ident和Price(因为值唯一,两种聚合函数结果相同):

SELECT 
    Service_name,
    MAX(Ident) AS Ident,
    MAX(Price) AS Price,
    SUM(Qty) AS Total_Qty,
    SUM(Qty) * MAX(Price) AS Total_Value
FROM NewOne
GROUP BY Service_name;

原SQL的问题在于只聚合了Qty,没有保留Ident、Price字段,也没有计算总价值,上述两种写法都能满足你的需求,推荐第一种标准写法,可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:29:51