当前位置: 首页 > news >正文

怎么在百度上制作自己的网站石家庄网站seo外包

怎么在百度上制作自己的网站,石家庄网站seo外包,wap网站案例,做网站有没有前途背景 最近遇到需求,需要对数据进行分组排序并获取每组数据的前三名。 一般涉及到分组,第一时间就是想到使用group by对数据进行分组,但这样分组,到最后其实只能获取到每组数据中的一条记录。 在需要获取每组里面的多条记录的时候…

背景

最近遇到需求,需要对数据进行分组排序并获取每组数据的前三名。
一般涉及到分组,第一时间就是想到使用group by对数据进行分组,但这样分组,到最后其实只能获取到每组数据中的一条记录。
在需要获取每组里面的多条记录的时候,就实现不了了。就算能实现,也得用上比较复杂的SQL嵌套或者业务层实现。

窗口函数

这个时候,就该想到我们的窗口函数了,在MySQL8开始支持窗口函数。
通过窗口函数,可以很轻易地实现数据分组并获取分组内的多条记录。
并且有多种效果的获取排序方式。

语法:
SELECT 窗口函数() OVER(PARTITION BY 字段 ORDER BY 字段) FROM 表
可以把中间的“ 窗口函数() OVER(PARTITION BY 字段 ORDER BY 字段)”看成是一个函数,处理数据并获取到记录的排序值。

RNAK()

RNAK()对数据进行排序,从1开始,不一定连续,如果排序值相同,则名次一样,后面的排名会按照排在前面有多少数据去算。如有两个第二名,那么直接就没有第三名,下一个直接到第四名。

SELECT id,RANK() OVER(PARTITION BY subject ORDER BY score DESC) AS num,subject,name,score FROM test

在这里插入图片描述
看math的数据,因为tom和jack的成绩一样,所以他们都是第二名,而lala直接到了第四名,也就是没有第三名。

ROW_NUMBER()

对相等的排序值不进行区分,也就是即使排序值相同对应的排名也不同,序号从1到n连续。

SELECT id,ROW_NUMBER() OVER(PARTITION BY subject ORDER BY score DESC) AS num,subject,name,score FROM test

在这里插入图片描述
如上图,tom和jack的math分数是一样的,但是还是会强行给他们分出先后顺序。

DENSE_RANK()

对于相同的排序值,则排名相同,排名从1开始连续。如,有两个排第二,下一个就是序号3。(和一、二、三等奖算法差不多)

SELECT id,DENSE_RANK() OVER(PARTITION BY subject ORDER BY score DESC) AS num,subject,name,score FROM test
在这里插入图片描述
如上图,tom和jack的math并列二等奖,lala就是三等奖。

http://www.zhongyajixie.com/news/12079.html

相关文章:

  • 如何将自己做的网站变成中文网络推广服务商
  • flash网站设计教程免费发布信息网网站
  • 快速网站建设网络整合营销理论
  • 用腾讯云做网站的好处朝阳区seo搜索引擎优化介绍
  • 保险预约windows优化大师是系统软件吗
  • 全国建设部网站证书查询软文有哪几种类型
  • 泉做网站的公司专业网站推广优化
  • 小说网站签约作者应该怎么做网站的开发流程
  • 手机上自己做网站营口建网站的公司
  • wordpress权限代码网站seo收录
  • 东莞做网站-南城信科网络推广公司方案
  • 怎么用ps做网站图片淘宝搜索词排名查询
  • 武安专业做网站微信5000人接推广费用
  • 深圳响应式网站建设南京seo公司教程
  • 云南网站备案难吗网站关键词排名seo
  • 做社群的网站有哪些新冠咳嗽怎么办
  • 微信网站模板seo公司网站推广
  • php做网站用什么开发工具如何创建自己的卡网
  • 江苏泰州建设局网站想学网络营销怎么学
  • 怎么做网站报价表推广互联网推广
  • 目前国内有哪些网站做家具回收无锡百度正规推广
  • 南通的网站建设优化排名
  • 昆明网站seo多少钱cnzz统计
  • 中国工业设计公司排名前十强seo外链查询工具
  • 云南网站建设天度网站你应该明白我的意思吗
  • 邢台网站建设厂家肇庆百度快照优化
  • 怎么看一个网站谁做的优化流量精灵
  • 网站建设企业服务器链交换
  • 徐汇区网站建设哪家比较靠谱重庆seo技术博客
  • 网站左边logo图标怎么做百度打开