SQL Window Function

Back

ROW_NUMBER(), RANK()

memory D WITH T(StyleID, ID)
              AS (SELECT 1,1 UNION ALL
                  SELECT 1,1 UNION ALL
                  SELECT 1,1 UNION ALL
                  SELECT 1,2)
         SELECT *,
                RANK() OVER(PARTITION BY StyleID ORDER BY ID)       AS RANK,
                ROW_NUMBER() OVER(PARTITION BY StyleID ORDER BY ID) AS ROW_NUMBER,
                DENSE_RANK() OVER(PARTITION BY StyleID ORDER BY ID) AS DENSE_RANK
         FROM   T
         ;
┌─────────┬───────┬───────┬────────────┬────────────┐
│ StyleID │  ID   │ RANK  │ ROW_NUMBER │ DENSE_RANK │
│  int32  │ int32 │ int64 │   int64    │   int64    │
├─────────┼───────┼───────┼────────────┼────────────┤
│       1 │     1 │     1 │          1 │          1 │
│       1 │     1 │     1 │          2 │          1 │
│       1 │     1 │     1 │          3 │          1 │
│       1 │     2 │     4 │          4 │          2 │
└─────────┴───────┴───────┴────────────┴────────────┘
memory D