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,以获得每个 (col1, col2) 具有最高
配对。col3
的单行)
最佳答案
MySQL 中没有排名功能。您可以获得的最接近的是使用变量:
SELECT t.*,
@rownum := @rownum + 1 AS rank
FROM YOUR_TABLE t,
(SELECT @rownum := 0) r
<小时/>
so how would that work in my case? I'd need two variables, one for each of col1 and col2? Col2 would need resetting somehow when col1 changed..?
是的。如果是 Oracle,您可以使用 LEAD 函数在下一个值处达到峰值。值得庆幸的是,Quassnoi 涵盖了 the logic for what you need to implement in MySQL .
关于mysql - MySQL 中的 ROW_NUMBER(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52785895/