sql - 按可变结果表大小分组的条件总和
问题描述
我有一个关于我在 SO 上遇到的关于分组条件总和的非常有趣的问题的后续问题。这是问题。
原来的问题
我有一个具有以下架构的表 OrderDetails:
----------------------------------------------------------------
| OrderId | CopyCost | FullPrice | Price | PriceType |
----------------------------------------------------------------
| 16 | 50 | 100 | 50 | CopyCost |
----------------------------------------------------------------
| 16 | 50 | 100 | 100 | FullPrice |
----------------------------------------------------------------
| 16 | 50 | 100 | 50 | CopyCost |
----------------------------------------------------------------
| 16 | 50 | 100 | 50 | CopyCost |
----------------------------------------------------------------
我需要一个查询,将上表推测为具有以下架构的新表:
----------------------------------------------------------------
| OrderId | ItemCount | TotalCopyCost | TotalFullPrice |
----------------------------------------------------------------
| 16 | 4 | 150 | 100 |
----------------------------------------------------------------
目前我在 Order.Id 上使用 Group By 来计算项目计数。但我不知道如何有条件地推测 CopyCost 和 FullPrice 值。
跟进
如果您事先不知道价格类型,有什么办法可以做到这一点?例如,如果有问题的表| OrderId | CopyCost | FullPrice | Price | PriceType |
是一个order
表和一个order_price_type
表连接的结果?然后,汇总表的列数会根据order_price_types
表的行数而变化?
这是否会将 sql 用于它不是为它设计的并且在代码中更好地完成的东西?
解决方案
推荐阅读
- php - 使用 cURL 将 Pdf 文件上传到另一个网站
- mongodb - Mongodb 指定类型“字符串”也返回“数组”字段
- image-processing - 如何标记图像的对象
- javascript - 编写javascript来检测速度
- javascript - Jquery发送Ajax并且没有等待发送其他ajax的响应
- python - 奇数语法(继承中的海象运算符)
- sql - 如何使用 IN 运算符按两个字段进行选择
- postgresql - Postgresql 查询删除所有行
- bash - 如何使用 jq 根据唯一键值组合来自同一 JSON 对象的两个数组?
- flutter - 这种格式的 DateFormat 框架是什么?