栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何查询数据库中用户的排名,但仅考虑每个用户的最新条目?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何查询数据库中用户的排名,但仅考虑每个用户的最新条目?

这就是我所说的“最大的每组”问题。每周在StackOverflow上出现几次。

我使用外部联接技术解决了这类问题:

SELECt s1.*, s1.wins / s1.losses AS win_loss_ratioFROM Scrape s1LEFT OUTER JOIN Scrape s2  ON (s1.username = s2.username AND s1.ScrapeDate < s2.ScrapeDate)WHERe s2.username IS NULLORDER BY win_loss_ratio DESC;

每个用户名仅返回一行-列中值最大的

ScrapeDate
行。这就是外部联接的作用, 试图
s1
具有
s2
相同用户名和更大日期的其他行匹配。如果没有这样的行,则外部联接将为的所有列返回NULL
s2
,然后我们知道
s1
对应于该给定用户名具有最大日期的行。

当您正在进行部分完成的抓取时,这也应该起作用。

该技术不一定像其他答案给出的CTE和RANKING解决方案一样快。您应该同时尝试这两种方法,然后看看哪种方法更适合您。我之所以喜欢我的解决方案,是因为它可以在任何SQL版本中使用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号