MySQL从多个列中选择并计算值
我正在尝试创建一个mysql select查询,它根据另外两个字段计算一个值 这是我的疑问MySQL从多个列中选择并计算值,mysql,select,Mysql,Select,我正在尝试创建一个mysql select查询,它根据另外两个字段计算一个值 这是我的疑问 SELECT request_id, ( unit_cost * quantity ) AS claim_value FROM `xx_non_part_usage` WHERE request_id = request_id GROUP BY request_id 上面的查询只返回其中一行的总_值 例如,以下是一些示例数据 ID REQUEST_ID QUANTITY
SELECT request_id, (
unit_cost * quantity
) AS claim_value
FROM `xx_non_part_usage`
WHERE request_id = request_id
GROUP BY request_id
上面的查询只返回其中一行的总_值
例如,以下是一些示例数据
ID REQUEST_ID QUANTITY UNIT_VALUE
1 10001 2.0 3.00
2 10001 1.0 19.00
3 10003 0.5 18.00
4 10001 10.0 12.00
5 10003 0.75 6.76
6 10002 9.0 3.20
7 10001 0.10 13.80
8 10001 1.0 90.99
9 10004 6.75 3.00
10 10009 3.23 87.00
如您所见,有几行请求ID“10001”。查询需要做的是请求_ID*数量,然后对它们进行分组,这样它只返回最终值价格(将乘法和(请求_ID*数量)的所有结果相加)
以下是我希望得到的预期结果(请求时的不同示例\u ID 10003
REQUEST_ID TOTAL_VALUE
10003 14.07
10004 20.75
...
...
提前谢谢。为什么要使用“where”子句
除非您使用的是聚合函数,否则您不应该使用
分组依据。删除“WHERE”会产生相同的结果。@verheesj-如果答案回答了您的问题,您应该将答案标记为已接受。我删除了WHERE并添加了SUM。这非常有效。感谢您的帮助!非常感谢
mysql> select * from test;
+------------+------------+----------+
| request_id | unit_value | quantity |
+------------+------------+----------+
| 1 | 3 | 2 |
| 1 | 19 | 1 |
| 2 | 6.76 | 0.75 |
| 2 | 18 | 0.5 |
+------------+------------+----------+
4 rows in set (0.00 sec)
mysql> SELECT request_id, sum(unit_value * quantity) as x from test group by request_id;
+------------+--------------------+
| request_id | x |
+------------+--------------------+
| 1 | 25 |
| 2 | 14.070000171661377 |
+------------+--------------------+
2 rows in set (0.00 sec)
ID REQUEST_ID CLAIM_VALUE
3 10003 9.00
5 10003 5.07
SELECT
request_id,
SUM(unit_cost * quantity) AS claim_value
FROM `xx_non_part_usage`
WHERE request_id = request_id
GROUP BY request_id