WINDOW FUNCTION NTILE

description

对于NTILE(n), 该函数会将排序分区中的所有行按顺序分配到n个桶中(编号较小的桶满了之后才能分配编号较大的桶)。对于每一行, NTILE()函数会返回该行数据所在的桶的编号(从1到n)。对于不能平均分配的情况, 优先分配到编号较小的桶中。所有桶中的行数相差不能超过1。目前n只能是正整数。

  1. NTILE(n) OVER(partition_by_clause order_by_clause)

example

  1. select x, y, ntile(2) over(partition by x order by y) as rank from int_t;
  2. | x | y | rank |
  3. |---|------|----------|
  4. | 1 | 1 | 1 |
  5. | 1 | 2 | 1 |
  6. | 1 | 2 | 2 |
  7. | 2 | 1 | 1 |
  8. | 2 | 2 | 1 |
  9. | 2 | 3 | 2 |
  10. | 3 | 1 | 1 |
  11. | 3 | 1 | 1 |
  12. | 3 | 2 | 2 |

keywords

  1. WINDOW,FUNCTION,NTILE