SQLite稠密_秩窗口函数的实例分析
SQLite稠密_RANK()函数简介
DENSE_RANK()是一个窗口函数,它计算一行在有序行集中的排名,并以整数形式返回排名。秩是从1开始的连续整数。具有相同值的行接收相同的排名。如果是平局,则不会跳过排名值。
下面是稠密_RANK()函数的语法:
DENSE_RANK() OVER (
PARTITION BY expression1, expression2,...
ORDER BY expression1 [ASC | DESC], expression2,..
)
在这种语法中:
如果要创建top-N和bottom-N报告,则densite_RANK()函数非常有用。
SQLite稠密_RANK()函数示例
让我们以使用dense_RANK()函数更好地理解它为例。
在结果集示例上使用SQLite DENSE_RANK()
首先,创建一个名为DensrankDemo的新表进行演示:
CREATE TABLE DenseRankDemo (
Val TEXT
);
其次,将数据插入DensrankDemo表:
INSERT INTO DenseRankDemo(Val)
VALUES('A'),('B'),('C'),('C'),('D'),('D'),('E');
第三,使用DENSE_RANK()函数计算每行的秩:
SELECT
Val,
DENSE_RANK () OVER (
ORDER BY Val )
ValRank
FROM
DenseRankDemo;
以下是输出:
从输出中可以清楚地看到:
在分区示例上使用SQLite DENSE_RANK()
下面的语句使用DENSE_RANK()函数根据曲目的长度计算每个专辑中每个曲目的排名:
SELECT
AlbumId,
Name,
Milliseconds,
DENSE_RANK () OVER (
PARTITION BY AlbumId
ORDER BY Milliseconds
) LengthRank
FROM
tracks;
下图显示了部分输出:
在本例中:
在本教程中,您学习了如何使用SQLite densite_RANK()函数来计算有序行集中的行的秩。