Sql 查询每个产品的总价值

Sql 查询每个产品的总价值,sql,Sql,我已经运行了下面的查询,以获得在价格大于100的情况下购买每种产品的总购买量的客户列表。但是,我遇到了一个问题,即添加一列每个产品的总价值TotalQuantityPurchased*价格: SELECT name, count(product) as TotalQuantityPurchased, SUM(price) as PriceOver100 FROM [order] GROUP BY name HAVING SUM(price)>100; 以下是原始数据: +------

我已经运行了下面的查询,以获得在价格大于100的情况下购买每种产品的总购买量的客户列表。但是,我遇到了一个问题,即添加一列每个产品的总价值TotalQuantityPurchased*价格:

SELECT name, count(product) as TotalQuantityPurchased, 
SUM(price) as PriceOver100
FROM [order] 
GROUP BY name
HAVING SUM(price)>100;
以下是原始数据:

+---------+---------+-------+
|  name   | product | price |
+---------+---------+-------+
| Kathy   | A       |     1 |
| Kathy   | B       |   150 |
| Kathy   | B       |   150 |
| Chung   | C       |   120 |
| Peter   | D       |    40 |
| Peter   | E       |   210 |
| Chris   | A       |     1 |
| Chris   | W       |    90 |
| William | A       |     1 |
| William | K       |    20 |
| William | K       |    20 |
| William | N       |   350 |
| Tina    | K       |   500 |
| Tina    | P       |   160 |
+---------+---------+-------+

价格值似乎与产品相关,而不是名称,因此您必须按级别对不同组的值进行乘法

你可以

SELECT name, product, count(product) as TotalQuantityPurchased, count(product) * price sum_price
SUM(price) as PriceOver100
FROM [order] 
GROUP BY name, product 
HAVING SUM(price)>100; 
然后

select  name, sum(TotalQuantityPurchased), sum(sum_price)
from (
    SELECT name, product, count(product) as TotalQuantityPurchased, count(product) * price sum_price
    SUM(price) as PriceOver100
    FROM [order] 
    GROUP BY name, product 
    HAVING SUM(price)>100; 

) t  
group by name 

在不知道您的预期结果的情况下,我认为您可以使用相同的查询,只是您应该按名称和产品进行分组,以获得每个产品的总价值


假设您需要一份包含客户和该客户购买的产品总数的列表,其中我们只计算价格高于100的产品。在这种情况下,查询应为:

SELECT name, 
       count(product) as TotalQuantityPurchased
FROM [order] 
WHERE price > 100
GROUP BY name
;
在这种情况下,考虑到您就问题给出的表格,输出将为:

Name       TotalQuantityPurchased
Kathy      2
Chung      1
Peter      1
William    1
Tina       2

您对问题中的查询所做的是:计算从已购买超过100美元的客户处购买的产品的总数量,并考虑其所有购买的总和。

更新您的问题并显示预期结果。。
Name       TotalQuantityPurchased
Kathy      2
Chung      1
Peter      1
William    1
Tina       2