mysql - 自学问题mysql,如何使用2个表创建第3个表,该表使用原始2个表的信息

标签 mysql mysql-workbench data-science

我之前问了一个问题,它帮助我创建了下表 How to get the count of unique SKU per Date, in a table in mysql (Self learning question)

SKU, COUNT, DateSold
12,     2,      1-Jan-08 
11,     1,      1-Jan-08 
11,     2,      2-Jan-08 
11,     1,      3-Jan-08 
13,     1,      3-Jan-08 
11,     1,      4-Jan-08 
13,     1,      5-Jan-08 

使用上面的现有表格和

下面的 SKU 价格表

SKU, PRICE
11,     5.00
12,    10.00
13,    15.00

现在的问题是我如何使用这两个表来创建每天的总计,而无需手动执行,下面是我想要的表。

Day,       Total
1-Jan-08,    25.00
2-Jan-08,    10.00
3-Jan-08,    20.00
4-Jan-08,    05.00
5-Jan-08,    15.00

我在创建的 Excel 文件(数据透视表)中有类似的东西,但我希望 mysql 可以帮助我高效、更快地完成此操作。我再次对此感到陌生,这对我理解 sql 有很大帮助。这不是一项任务,我再次尝试提升我的技能。

谢谢

最佳答案

假设您从原始问题的销售数据开始,您可以通过JOIN将该表连接到您的price表(以获取价格)来获得您想要的结果每件商品的价格),然后对售出的每件商品的 PRICE 求和(因为每行只有一件商品)。我们GROUP BY Day每天获取结果:

SELECT s.DateSold AS Day, SUM(p.PRICE) AS Total
FROM sales s
JOIN price p ON p.SKU = s.SKU
GROUP BY Day

如果您想从已经聚合的数据开始,您可以稍微更改查询。在这种情况下,您每天会售出 COUNT 件商品,因此您必须SUM 该数量乘以商品的价格。

SELECT d.DateSold AS Day, SUM(d.COUNT * p.PRICE) AS Total
FROM daysales d
JOIN price p ON p.SKU = d.SKU
GROUP BY Day

输出(对于两个查询):

Day         Total
1-Jan-08    25
2-Jan-08    10
3-Jan-08    20
4-Jan-08    5
5-Jan-08    15

Demo on dbfiddle

关于mysql - 自学问题mysql,如何使用2个表创建第3个表,该表使用原始2个表的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54175130/

相关文章:

mysql - 插入前创建触发器

php - CodeIgniter - 转义 SQL

mysql - 与 'reading initial communication packet' 处的 MySQL 服务器失去连接,系统错误 : 61

mysql - 使用 MySQL 创建跨多个表的评分算法

machine-learning - 在什么情况下可以使用 bagging 来代替 boosting?

python - 如何根据 PlaceID 列出 ave_ rating,取其平均值并分配给所有具有 PlaceID 的 PlaceID。

mysql - 错误 1022 - 无法写入;表中的重复键

php - Laravel - 分页随机记录

MySQL 错误 : The maximum column size is 767 bytes

python - openpyxl 数据透视表和 pandas 数据透视表