如何从单个表中选择一个数据结果集,其中一个列来自另一个表中列的SUM?

Met*_*uru 2 sql

因此,假设我想在结果集中总共添加5列,例如:

Name, Date, Color, Price, TotalSales
Run Code Online (Sandbox Code Playgroud)

名称,日期,颜色和价格都存储在一个表中,因此我将从该表中获取每一行.

SELECT * FROM AwesomeStuff
Run Code Online (Sandbox Code Playgroud)

但是,TotalSales需要根据另一个表中的值的SUM计算,并且需要组合的值必须与AwesomeStuff表中的行的ID匹配.

SELECT SUM(SalePrice) FROM AwesomeSales
Run Code Online (Sandbox Code Playgroud)

AwesomeSales表中的每一行都有一个与AwesomeStuff表中的单个项匹配的ID.所以我想将所有SalePrice值加到一个列中,并将它与AwesomeStuff查询中的正确行匹配,这样我就可以得到单个结果集.

这是如何运作的?除了查询,你能解释一下SQL用简单的英语做什么,这样我才能理解将来如何再次编写这种类型的SELECT?

谢谢.

Fen*_*ton 5

您可以执行GROUP BY操作以按"AwesomeStuff"项目对结果进行分组:

SELECT
    A.Name,
    A.Date,
    A.Color,
    A.Price,
    SUM(S.SalePrice) AS TotalSales
FROM
    AwesomeStuff A
INNER JOIN
    AwesomeSales S
ON
    S.AwesomeStuffId = A.Id
GROUP BY
    A.Name,
    A.Date,
    A.Color,
    A.Price
Run Code Online (Sandbox Code Playgroud)