MySQL 有没有一种很好的方法来复制 SQL Server 功能ROW_NUMBER()
?
例如:
SELECT
col1, col2,
ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1
然后我可以添加一个条件来限制intRow
到 1 以获得最高的单行col3
对于每个(col1, col2)
pair.
MySQL 中没有排名功能。您可以获得的最接近的是使用变量:
SELECT t.*,
@rownum := @rownum + 1 AS rank
FROM YOUR_TABLE t,
(SELECT @rownum := 0) r
那么对于我来说这会如何呢?我需要两个变量,col1 和 col2 各一个?当 col1 更改时,Col2 需要以某种方式重置..?
是的。如果是 Oracle,您可以使用 LEAD 函数在下一个值处达到峰值。值得庆幸的是,Quassnoi 涵盖了您需要在 MySQL 中实现的逻辑.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)