gpt4 book ai didi

SQL - 向结果集添加额外的行

转载 作者:行者123 更新时间:2023-12-04 14:13:35 24 4
gpt4 key购买 nike

我有一个小的 SQL 任务要完成,但老实说我不知道​​如何处理它。

考虑下表:

**Product ID | Product Name | Product Cat | Price | Amount Sold**
1 | product 1 | cat1 | 0.10 | 1000
2 | product 2 | cat1 | 0.50 | 10
.... | ..... | ...... | ... | ....
500 | ..... | ....... | ... | ....
501 | ...... | ....... | .... | .....
.... | ....... | ...... | ..... | .....

为了制作销售报告,我有一个 SQL 查询,它选择所有产品,对所有销售量字段求和并计算产品的总销售量。我现在被要求执行以下操作:

对于一些特定的产品 ID(例如 500、501),我将“添加一行”到结果集中,内容如下:

**Product ID | Product Name | Product Cat | Price | Amount Sold**
.... | ..... | ...... | ... | ....
500 | ..... | ....... | ... | ....
501 | ...... | ....... | .... | .....
xxx | Sum | ...... | Total | Total
..... | ........ | ........ | ..... | .....

我怎样才能做到这一点?我是否必须连接多个 select 语句,或者有没有一种方法可以使用汇总来按某些产品 ID 进行分组?

提前致谢。

最佳答案

正如评论中的其他人所指出的,这种逻辑由报告解决方案本身处理更有意义,即使该软件只是像 excel 这样简单的东西。

但是,如果我正确理解您的要求,您可以使用两个 SELECT 查询的 UNION

类似的东西;

SELECT ProductID, ProductName, ProductCat, Price, AmountSold
FROM YourTable

UNION ALL

SELECT 0, 'Sum of 1 & 2', 0, SUM(Price), SUM(AmountSold)
FROM YourTable
WHERE (ProductID = 1 OR ProductID = 2);

这假设您的总和等将匹配或可转换为原始列的数据类型。使用 UNION ALL 性能更好,并且可以防止您的新行在其所有列值与现有行匹配的不太可能发生的情况下被删除。

希望对您有所帮助。

关于SQL - 向结果集添加额外的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28363903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com