SQL/DB2 - 如何选择要在哪些行上使用聚合函数以及要忽略哪些行?
我确信这对于 SQL/DB2 专家来说是一个简单的问题,但我仍然是一个新手,我无法思考解决这个问题的方法。
我有一个包含四列的表:金额、ID1、ID2 和日期。以下是数据示例:
Amount ID1 ID2 Date 3,220 127 149 Dec 1 3,220 127 424 Dec 1 637 130 149 Dec 1 637 130 424 Dec 1 2232 161 149 Dec 1 2232 161 424 Dec 1 1221 372 149 Dec 1 1221 372 424 Dec 1 1221 372 149 Jun 1 1221 372 424 Jun 1 554 54 149 Dec 1 554 54 424 Dec 1 554 54 149 Jun 1 554 54 424 Jun 1
因此,我想要做的是获取每个 ID1 的金额的 SUM(),忽略 ID2,并且仅获取当前的最新日期。正是这个日期给我带来了麻烦。我能得到的最接近的是:
Sum Amounts 6440 1274 4464 4884 1108
当我想要的是这样的时候:
Sum Amounts 6440 1274 4464 2442 2216
我真正想要的是最后两个数字仅 SUM() 6 月 1 日的金额,并忽略 12 月 1 日。基本上采用当前的日期。
I'm sure this is a simple problem for SQL/DB2 gurus, but I'm still a novice and I can't think my way through this.
I have a table with four columns: Amount, ID1, ID2, and Date. Here's a sample of the data:
Amount ID1 ID2 Date 3,220 127 149 Dec 1 3,220 127 424 Dec 1 637 130 149 Dec 1 637 130 424 Dec 1 2232 161 149 Dec 1 2232 161 424 Dec 1 1221 372 149 Dec 1 1221 372 424 Dec 1 1221 372 149 Jun 1 1221 372 424 Jun 1 554 54 149 Dec 1 554 54 424 Dec 1 554 54 149 Jun 1 554 54 424 Jun 1
So, what I'm trying to do is get a SUM() of the Amounts, for each ID1, ignoring ID2, and only for the currentmost Date. It's the date that's causing me the trouble. The closest I can get it is this:
Sum Amounts 6440 1274 4464 4884 1108
When what I want is this:
Sum Amounts 6440 1274 4464 2442 2216
What I really want is for the last two numbers to only SUM() the amounts for Jun 1, and ignore Dec 1. To basically take the currentmost dates.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这应该适合你:
This should work for you: