SQL:如何根据聚合列中的其他列选择值
如果我有这样的表:
team_id | Score | timestamp |
---|---|---|
1 | 8 | 2022-01-05 |
1 | 10 | 2022-02-01 |
2 | 5 | 2022-01-06 |
2 | 9 | 2022-01-15 |
2 | 7 | 2022-01-20 |
我只想要球队ID和按ID分组的最新得分:
team_id | Score |
---|---|
1 | 10 |
2 | 7 |
那么问题是当我按ID分组时,如何根据时间戳选择正确的分数?我可以在一个查询中完成此操作吗?谢谢。
If I have a table like this:
team_id | score | timestamp |
---|---|---|
1 | 8 | 2022-01-05 |
1 | 10 | 2022-02-01 |
2 | 5 | 2022-01-06 |
2 | 9 | 2022-01-15 |
2 | 7 | 2022-01-20 |
and I only want the team ID and the latest score grouped by the ID:
team_id | score |
---|---|
1 | 10 |
2 | 7 |
So the questions is when I group by the ID, how do I select the right score based on the timestamp? can I do this in one query? thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
max
窗口函数:Fiddle
You can use the
max
window function:Fiddle
本质上,您根据团队 ID 将表连接到自身,但确保时间戳更大
Essentially you join the table to itself based upon the team id but ensuring that the timestamp is the greater