sql-server - 如何仅在平面文件列之一中加载具有最高值的数据?
问题描述
我有以下平面文件:
ColumnA Quantity BatchID
1 10 100
1 10 200
2 20 100
2 20 200
3 30 100
3 30 200
如何仅将最高 BatchID 的数据(即 BatchID 200)加载到我的 SQL Server 数据库中?
在上面的示例中,我想将此数据加载到我的数据库中:
ColumnA Quantity BatchID
1 10 200
2 20 200
3 30 200
谢谢你。
解决方案
StackOverflow 不是提供解决方案,而是解决 OP 已经尝试过的特定问题。发布问题时请记住这一点。
话虽如此,有两种潜在的解决方案:
- 将数据加载到临时表中,然后使用 SELECT 插入,该 SELECT 具有按 MAX 值选择的内联视图。必须使用内联视图,因为您不能在谓词中使用聚合,因此您必须运行单独的 SELECT 以获得最大值 - 或者您可以将其分解为公用表表达式 (CTE) 并从中选择。
- 在 SSIS 内在线执行。首先,根据 BatchId 和 Quantity 对列进行排序(我假设这就是您的排序方式)。然后使用脚本任务将数量存储在变量中。现在,遍历每一行并将传入的值与存储的值进行比较:如果大于,则可以设置一个名为 IsMaxValue 的新 BIT 列。从那里,执行条件拆分以将 IsMaxValue == 1 的行发送到数据库。
推荐阅读
- graphql - TypeORM - 使用数组参数查询数据库 - Postgres?
- reactjs - 如何使用odoo rest api服务器从客户端获取数据?
- mocking - 是否可以在网关级别模拟 GraphQL 服务?
- javascript - 找不到“object”类型的不同支持对象“[object Object]”。NgFor 仅支持绑定到 Iterables,例如 Arrays。[Angular 8]
- node.js - 带有 Nginx 的 AWS ELB(网络负载均衡器)代理协议
- sql - 选择子串
- mysql - 谁能告诉我这个查询有什么问题?
- html - 如何使用 Selenium 通过 XPath 选择兄弟姐妹的孩子?
- javascript - 将 POST 请求中的对象数组附加文件发送到 Django
- html - 如何创建一个元素向右浮动而另一个元素向左浮动的行