所以我查看了如何在mysql中从oracle模拟row_number函数,并遇到了这个问题:http://www.xaprb.com/blog/2005/09/27/simulating-the-sql-row_number-function/
我的问题是COUNT(*)如何为每个类型组保持增长。不会为每个不同的variety
重置,因为那是该组的第二部分吗?
答案 0 :(得分:1)
group by将不会重置,因为使用两列完成分组。基本上,在连接之后形成的表具有许多条目,因此计数上升。
以下条件“和l.variety> = r.variety”在查询中限制没有行, 'fuji'是第一个,'limbertwig'按字母顺序排在最后,决定了计数
因此,如果没有上述条件,则计数(*)将等于= 3.
答案 1 :(得分:1)
关键是加入条件l.variety >= r.variety
。这会将l
中的行添加到r
集中第一个的所有变种的结果集中,然后减少一个,然后减少一个,等等。运行不带GROUP BY
的查询我会看到的。