首先我们创建一张city_popularity表:
CREATE TABLEcity_popularity(
regionint(10) NOT NULL COMMENT '1 国内 2 海外',
city_nameVARCHAR(64) NOT NULL,
popularityDOUBLE(5,2) NOT NULL);
并向其中添加数据:
INSERT INTOcity_popularity (region, city_name, popularity)VALUES(1, '北京', 30.0),
(1, '上海', 30.0),
(1, '南京', 10.0),
(2, '伦敦', 20.0),
(1, '张家界', 8.0),
(2, '纽约', 35.0),
(1, '三亚', 25.0),
(2, '新加坡', 35.0);
创建出的表及数据如下:
现在对所有城市的热门度进行排名:
1. 通过窗口函数
MySQL从8.0开始支持窗口函数,也叫分析函数,序号函数ROW_NUMBER(), RANK(), DENSE_RANK()满足不同需求的排序
SELECTregion, city_name, popularity,