这已经困扰我一段时间了
表:库存
| customerID | Item | Quantity | Price |
| cus1 | A | 3 | 4 |
| cus1 | B | 2 | 3 |
| cus1 | C | 3 | 3 |
| cus2 | A | 3 | 3.50 |
| cus2 | C | 3 | 2 |
| cus3 | D | 6 | 4 |
如何让我的mysql查询生成如下视图
视图:库存
| cusID | Item |Quan |Price |Tot_Qua | Tot_pri | sumtot_pri/tot_qua|
| cus1 | A | 3 | 4 | 8 | 12 | 3.375 |
| cus1 | B | 2 | 3 | 8 | 6 | 3.375 |
| cus1 | C | 3 | 3 | 8 | 9 | 3.375 |
| cus2 | A | 3 | 3.50 | 6 | 10.05 | 2.675 |
| cus2 | C | 3 | 2 | 6 | 6 | 2.675 |
| cus3 | D | 6 | 4 | 6 | 24 | 4.00 |
cus1示例。cus1有3个项目,即a、b和c。所以我想要一些公式
Tot_Qua = 3+2+3 = 8
Tot_pri = price x quan
tot\u pri必须为cus1记录求和,
sumtot_pri = (quan x price) + (quan x price) + (quan x price)
sumtot_pri = (12) + (6) + (9)
因为cus1有3项,最后一项
sumtot_pri / Tot_qua = 27 / 8 = 3.375
我想需要分组,因为我想看看他们的物品。我不在乎是否有专栏 tot_qua
和列 sumtot_pri/tot_qua
将为每个CU复制相同的数据。
3条答案
按热度按时间ne5o7dgx1#
此查询将提供所需的结果。它在子查询中执行所有需要的聚合
JOIN
将其发送到主表以提供所需的输出:输出:
在dbfiddle上演示
tjjdgumg2#
mhd8tkvw3#
在mysql 8+中,您只需使用窗口函数:
在早期版本中,您将使用子查询或类似的机制。可能
join
以及group by
最简单的方法是: