Sql 将输出合并为一个
示例输出:Sql 将输出合并为一个,sql,oracle,Sql,Oracle,示例输出: Select Category, Books.ISBN, Orderitems.Quantity * (Books.Retail - Books.Cost) AS Category_Profit From BOoks INNER JOIN Orderitems ON BOOKS.ISBN=ORDERITEMS.ISBN 诸如此类 如何使输出将每个类别的所有值计算到一行中 即 使用groupby和SUM,语法: Family Life 1234 200
Select Category, Books.ISBN,
Orderitems.Quantity * (Books.Retail - Books.Cost) AS Category_Profit
From BOoks
INNER JOIN Orderitems
ON BOOKS.ISBN=ORDERITEMS.ISBN
诸如此类
如何使输出将每个类别的所有值计算到一行中
即
使用
groupby
和SUM
,语法:
Family Life 1234 200
Fitness 4321 30
参考:
在您的工作台上,您可以运行:
SELECT column_name, SUM(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
表1:
Select Category, ISBN, Sum(Category_Profit) From Table1
group by Category, ISBN;
输出:
Category ISBN Category_Profit
Family life 1234 50
Family Life 1234 50
Family Life 1234 100
Fitness 4321 10
Fitness 4321 20
因为您已经将此作为一个起点,所以请准确地使用临时表,并从中提取数据:
| Category | ISBN | Sum(Category_Profit) |
|-------------|------|----------------------|
| Family life | 1234 | 200 |
| Fitness | 4321 | 30 |
您将数据组织得非常好,因此很容易实现利润汇总。您可以按类别和ISBN分组,以获得这些列的所有唯一对以及相应的利润
如果您不想使用子查询,您可以在查询中求和(但我觉得在更改之前将现有查询用作子查询是很有帮助的,只是为了确保它能够工作:
Select Category, ISBN, Sum(Category_Profit) From
(
select Category, Books.ISBN as ISBN,
Orderitems.Quantity * (Books.Retail - Books.Cost) AS Category_Profit
From Books
INNER JOIN Orderitems
ON BOOKS.ISBN=ORDERITEMS.ISBN
) temp
group by Category, ISBN
分组可以用来解决您的问题 注意:在GROUPBY子句中,可以根据某些列对一组表行进行分组,在select子句中,可以显示GROUPBY列或其他列上的聚合函数(SUM、MIN、MAX、Count等) 参考: 使用分组方式,如下所示。希望这能解决问题
select Category, Books.ISBN,
SUM(Orderitems.Quantity * (Books.Retail - Books.Cost)) AS Category_Profit
From Books
INNER JOIN Orderitems
ON BOOKS.ISBN=ORDERITEMS.ISBN
temp
group by Category, Books.ISBN
因此,我现在拥有的是每个类别中不同的ISBN,即Cat、ISBN、Price(Comp 1234 50)(Comp 3333 50)再次合并这两个是group by或sum的另一个用途吗?我在想sum,也许我可以找到一种方法来计算类别中的所有ISBN。因此,我的第一组代码向您展示了如何从表中提取数据。使用精确的查询,但在其周围放上括号(您的查询),然后选择Cat、ISBN和sum(类别)从(您的查询)类别分类中,ISBN如果类别家庭生活附加了两个不同的ISBN号码怎么办?所以ISBN 1234和1235都在类别家庭生活中。您想在同一行中用逗号分隔它们吗?可能吗?是的,您可以这样做。请阅读以下内容:
select Category, Books.ISBN,
SUM(Orderitems.Quantity * (Books.Retail - Books.Cost)) AS Category_Profit
From Books
INNER JOIN Orderitems
ON BOOKS.ISBN=ORDERITEMS.ISBN
temp
group by Category, Books.ISBN
Select Category, Books.ISBN,
SUM(Orderitems.Quantity * (Books.Retail - Books.Cost)) AS Category_Profit
From BOoks
INNER JOIN Orderitems
ON BOOKS.ISBN=ORDERITEMS.ISBN
Group by Category,ISBN