そこで、mysqlでoracleからrow_number関数をシミュレートする方法を調べて、これに出くわしました:http ://www.xaprb.com/blog/2005/09/27/simulating-the-sql-row_number-function/
私の質問は、タイプグループごとにCOUNT(*)がどのように増加し続けるかです。variety
それはグループ化の2番目の部分であるため、異なるsごとにリセットされませんか?
そこで、mysqlでoracleからrow_number関数をシミュレートする方法を調べて、これに出くわしました:http ://www.xaprb.com/blog/2005/09/27/simulating-the-sql-row_number-function/
私の質問は、タイプグループごとにCOUNT(*)がどのように増加し続けるかです。variety
それはグループ化の2番目の部分であるため、異なるsごとにリセットされませんか?
重要なのは結合条件l.variety >= r.variety
です。l
これにより、セット内の最初のすべての種類の結果セットに行が追加r
され、次に1つ少なく、次に1つ少なくなります。を使用せずにクエリを実行するGROUP BY
と、が表示されます。
グループ化は両方の列を使用して行われるため、groupbyはリセットされません。基本的に、結合後に形成されるテーブルには、その数のエントリがあるため、カウントが増加します。
クエリの条件"およびl.variety>=r.variety"に続いて、行数が制限されます。アルファベット順で'fuji'が最初で、'limbertwig'が最後です。
したがって、上記の条件がない場合、count(*)は=3になります。