0

そこで、mysqlでoracleからrow_number関数をシミュレートする方法を調べて、これに出くわしました:http ://www.xaprb.com/blog/2005/09/27/simulating-the-sql-row_number-function/

私の質問は、タイプグループごとにCOUNT(*)がどのように増加し続けるかです。varietyそれはグループ化の2番目の部分であるため、異なるsごとにリセットされませんか?

4

2 に答える 2

1

重要なのは結合条件l.variety >= r.varietyです。lこれにより、セット内の最初のすべての種類の結果セットに行が追加rされ、次に1つ少なく、次に1つ少なくなります。を使用せずにクエリを実行するGROUP BYと、が表示されます。

于 2012-10-25T14:53:26.797 に答える
1

グループ化は両方の列を使用して行われるため、groupbyはリセットされません。基本的に、結合後に形成されるテーブルには、その数のエントリがあるため、カウントが増加します。

クエリの条件"およびl.variety>=r.variety"に続いて、行数が制限されます。アルファベット順で'fuji'が最初で、'limbertwig'が最後です。

したがって、上記の条件がない場合、count(*)は=3になります。

于 2012-10-25T14:46:06.480 に答える