NTILE
函数将有序数据集划分为 expr
指示的若干桶,并为每一行分配适当的桶号。桶编号为 1 到 expr
。 对于每个分区,expr
值必须解析为正常数。如果 expr
是一个非整数常量,则 OceanBase 将该值截断为整数。 返回值为 NUMBER
。
桶中的行数最多可以相差 1,其余值(行数的其余部分除以桶)为每个桶分配一个,从桶 1 开始。如果 expr
大于行数,则将填充与行数相等的多个桶,其余的桶将为空。
您不能通过使用 NTILE
或任何其他分析函数来嵌套分析函数。 但是您可以将其他内置函数表达式用在 expr
中。
NTILE(expr) OVER ([query_partition_clause] order_by_clause)
参数 |
说明 |
---|---|
expr |
只能为正常数。 |
OVER |
使用 |
返回 NUMERIC
类型数据。
根据成绩将同学分成四个等级,为学生评奖。创建表 course,并向里面插入数据,执行以下语句:
CREATE TABLE course
(
name VARCHAR(8),
grade NUMBER
);
INSERT INTO course VALUES('Linda',50);
INSERT INTO course VALUES('Tan',85);
INSERT INTO course VALUES('Tom',90);
INSERT INTO course VALUES('John',95);
INSERT INTO course VALUES('Mery',55);
INSERT INTO course VALUES('Peter',60);
INSERT INTO course VALUES('Jack',65);
INSERT INTO course VALUES('Rose',70);
INSERT INTO course VALUES('Tonny',75);
INSERT INTO course VALUES('Apple',80);
COMMIT;
执行以下语句:
SELECT name, grade, ntile(4) OVER (ORDER BY grade DESC) til FROM course;
查询结果如下:
+-------+-------+------+
| NAME | GRADE | TIL |
+-------+-------+------+
| John | 95 | 1 |
| Tom | 90 | 1 |
| Tan | 85 | 1 |
| Apple | 80 | 2 |
| Tonny | 75 | 2 |
| Rose | 70 | 2 |
| Jack | 65 | 3 |
| Peter | 60 | 3 |
| Mery | 55 | 4 |
| Linda | 50 | 4 |
+-------+-------+------+
存在条件(EXISTS Conditions)用于测试子查询中是否存在指定的行。语法EXISTS (subquery)如果子查询至少返回一行,则说明存在您...
描述该语句主要用于执行以下操作:修改 OceanBase 用户的密码。修改 OceanBase 用户连接的加密方式。修改 OceanBase 用户的 Prim...
提供用于侦听应用程序中功能的所有生命周期更改的回调。方法总结修饰符和类型方法描述void主动能力(Abilityability)Calledwhenth...
为应用程序模块提供 Ark 编译器和运行时接口。课程总结类描述ClassLoaderCreator创建一个ClassLoader实例,该实例从jar文件动态...
Classjava.lang.Object |---java.lang.ClassTpublic final class ClassTextends Objectimplements Serializable, GenericDeclara...
Long更新时间: 2021-11-01 17:20java.lang.Object |---java.lang.Number |---|---java.lang.Longpublic final class Longextends...
InstantiationExceptionjava.lang.Object |---java.lang.Throwable |---|---java.lang.Exception |---|---|---java.lang.Reflect...