Sql 是否可以将分组的行求和到另一列中,但只显示其中一行的求和结果?
我有一个查询表,其中包含来自几个用左连接连接的表的数据。到目前为止,一切正常,结果数据是销售订单中的单个项目。我可以将销售订单总值拉入一列,但我只希望该值显示在该订单的一行中,或显示在单独的一行中,以表示整个订单 我的想法是,要么我通过总计,但不知何故,只有在该订单尚未显示时才这样做,要么我使用SUM(),但这似乎只有在与GROUP BY一起使用时才起作用,然后我只显示总计,而不是单个项目 我真的不知道该尝试什么,因为我甚至不知道这是否可行,而且互联网搜索并没有给我任何似乎有用的结果,它们都是关于分组的Sql 是否可以将分组的行求和到另一列中,但只显示其中一行的求和结果?,sql,Sql,我有一个查询表,其中包含来自几个用左连接连接的表的数据。到目前为止,一切正常,结果数据是销售订单中的单个项目。我可以将销售订单总值拉入一列,但我只希望该值显示在该订单的一行中,或显示在单独的一行中,以表示整个订单 我的想法是,要么我通过总计,但不知何故,只有在该订单尚未显示时才这样做,要么我使用SUM(),但这似乎只有在与GROUP BY一起使用时才起作用,然后我只显示总计,而不是单个项目 我真的不知道该尝试什么,因为我甚至不知道这是否可行,而且互联网搜索并没有给我任何似乎有用的结果,它们都是关
SELECT
so."Sales Order#" as 'Sales Order Number',
soi."Sub Total" as 'Sub-Total'
FROM
"Sales Order Items" AS "soi"
LEFT JOIN
"Sales Orders" AS "so" ON so."Sales order ID" = soi."Sales order ID"
我想添加一列“TCV”,将具有相同销售订单号的所有项目的“小计”值相加。但我只希望此小计显示每个订单一次(不是针对每个订单项目)
在以下情况下,您可以通过使用窗口函数轻松实现:
SELECT
so.SalesOrderNumber as 'Sales Order Number',
CASE WHEN LAG(so.id) OVER (PARITION BY so.salesOrderNumber ORDER BY so.id) IS NULL --this row is first in group, order however you determine "First"
THEN soi.SubTotal
ELSE NULL
END AS subTotal
FROM
"Sales Order Items" AS soi LEFT JOIN
"Sales Orders" AS so ON so.salesOrderId = soi.salesOrderId
创建一个附加行,该行包含
哪个数据库管理系统???SQL只是一种语言。我们添加了一个示例数据表。我目前使用的软件支持用ANSI、Oracle、SQL Server、IBM DB2、MySQL、Sybase、Informix和PostgreSQL方言编写的SQL选择查询。但显然建议使用ANSI SQL方言