iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库有哪些提取前百分之N的记录的方法
  • 673
分享到

数据库有哪些提取前百分之N的记录的方法

2024-04-02 19:04:59 673人浏览 安东尼
摘要

这篇文章主要讲解了“数据库有哪些提取前百分之N的记录的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库有哪些提取前百分之N的记录的方法”吧!这个需求

这篇文章主要讲解了“数据库有哪些提取前百分之N的记录的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库有哪些提取前百分之N的记录的方法”吧!

数据库有哪些提取前百分之N的记录的方法

这个需求在SQL Serveroracle上都很容易实现,甚至是在Mysql 8.0也很容易实现,只是恰好我们业务数据库是mysql 5.7

先给大家介绍下不同数据库平台的实现方法。

sql Server实现方法

SQL Server上有个TOP Percent的方法可以直接取结果的前(或后)百分之N例如有如下一张City表

数据库有哪些提取前百分之N的记录的方法

我们取前10%的数据记录可以这样写:

SELECT  TOP 10 PERCENT   * FROM City ORDER BY ID DESC

结果如下:

数据库有哪些提取前百分之N的记录的方法

Oracle实现方法

Oracle有个ROWNUM伪列可以用来帮助我们计算前百分之N。ROWNUM伪列的特点:

  • ROWNUM是按照记录插入时的顺序排序

  • ROWNUM并不实际存在,是对筛选后的结果集的一个排序,如果不存在结果集就不会有ROWNUM

  • ROWNUM不能用基表名作为前缀

  • 在使用ROWNUM进行查询时,请注意:

1)若使用大于号(>),则只能使用(>0),其他均不可以 2)若使用小于号(<),同一般情况  3)若使用等于号(=),则只能使用等于1(=1)我们可以先计算出整个表的记录行数量

SELECT COUNT(*) CNT FROM City

然后根据count聚合查询总条数乘以百分比,来确定要查询的条数

SELECT 0.1*COUNT(*) CNT FROM City

最后取出伪列小于共有数据的百分比的数据

SELECT * FROM CITY WHERE ID IN ( SELECT ID FROM  ( SELECT ID FROM CITY ORDER BY ID DESC ) WHERE ROWNUM < (SELECT COUNT(*)*0.1 FROM CITY) )

注意:Oracle不支持子查询内ORDER BY,需要在外面再嵌套一层。

MySQL 8.0的实现方法

MySQL 8.0的实现方法主要是借助窗口函数ROW_NUMBER()  OVER()。其实就是给排好序的集合添加一个自增长列,与Oracle的ROWNUM有点类似

SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(ORDER BY ID DESC) rn FROM  City ORDER BY ID DESC ) a WHERE a.rn<=(SELECT 0.1*COUNT(*) FROM City)

MySQL 5.X的实现方法

我们知道MySQL 5.X是没有开窗函数ROW_NUMBER() OVER()的,那该如何实现呢?

这里我们需要借助变量来实现,其实思路还是创建一个自增长列,只是方法不同。

SELECT    A.*,   @row_num:=@row_num+1 AS ROW_NUM FROM    City A , (SELECT @row_num:=0) B ORDER BY ID DESC

这样我们就可以得到一张有自增长列的结果集了,接下来还是按照上面类似的方法,取前10%即可。

SELECT * FROM ( SELECT    A.*,   @row_num:=@row_num+1 AS ROW_NUM FROM    City A , (SELECT @row_num:=0) B ORDER BY ID DESC ) C WHERE C.ROW_NUM<=(@row_num*0.1)

其实MySQL 5.X也挺简单的,只是当时不怎么想用变量,想看看有没有其他办法,最后发现还是得用变量

感谢各位的阅读,以上就是“数据库有哪些提取前百分之N的记录的方法”的内容了,经过本文的学习后,相信大家对数据库有哪些提取前百分之N的记录的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: 数据库有哪些提取前百分之N的记录的方法

本文链接: https://www.lsjlt.com/news/61589.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库有哪些提取前百分之N的记录的方法
    这篇文章主要讲解了“数据库有哪些提取前百分之N的记录的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库有哪些提取前百分之N的记录的方法”吧!这个需求...
    99+
    2024-04-02
  • vba提取网页数据的方法有哪些
    在VBA中,提取网页数据的方法有以下几种:1. 使用IE对象:使用Internet Explorer对象来打开网页,并使用其提供的方...
    99+
    2023-09-12
    vba
  • 爬虫解析提取数据的方法有哪些
    本篇文章为大家展示了爬虫解析提取数据的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 一、分析网页以经典的爬取豆瓣电影 Top250 信息为例。每条电影信息在 ol class ...
    99+
    2023-06-15
  • MySQL数据库有哪些登录方法
    这篇文章主要讲解了“MySQL数据库有哪些登录方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库有哪些登录方法”吧!MySQL数据库登录方法...
    99+
    2024-04-02
  • 数据库分类方法有哪些
    这篇文章给大家分享的是有关数据库分类方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。常见的数据库分类方法  随着互联网的不断发展,企业在处理数据信息上可以采用...
    99+
    2024-04-02
  • 数据库的分表分库算法有哪些
    这篇文章主要讲解了“数据库的分表分库算法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库的分表分库算法有哪些”吧!以下是几种常见的分表算法。1.按...
    99+
    2024-04-02
  • oracle数据库登录的方式有哪些
    Oracle数据库可以通过以下几种方式进行登录: SQL*Plus命令行工具:通过在命令行中输入sqlplus命令,然后输入用户...
    99+
    2024-04-02
  • mysql数据库分页优化的方法有哪些
    MySQL数据库分页优化的方法主要有以下几种:1. 使用索引:在分页查询中,使用合适的索引可以大大提高查询效率。可以为经常进行分页查...
    99+
    2023-08-30
    mysql数据库
  • java读取数据的方法有哪些
    Java读取数据的方法有以下几种:1. 使用Scanner类:Scanner类是Java中常用的读取数据的类,可以从控制台、文件、字...
    99+
    2023-08-09
    java
  • 数据库数据采集的方法有哪些
    这篇“数据库数据采集的方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“数据库数据采...
    99+
    2023-03-13
    数据库
  • 前端JS获取URL参数的方法有哪些
    今天小编给大家分享一下前端JS获取URL参数的方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法1: 字符串 sp...
    99+
    2023-06-29
  • 数据库的测试方法有哪些
    这篇文章主要讲解了“数据库的测试方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库的测试方法有哪些”吧!目前,市场中有很多活跃的数据库工具,例如...
    99+
    2024-04-02
  • 数据库设计的方法有哪些
    这篇文章主要讲解了“数据库设计的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库设计的方法有哪些”吧!数据库设计技巧: 第2 部分—...
    99+
    2024-04-02
  • 数据库的设计方法有哪些
    本篇内容介绍了“数据库的设计方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 数据库优化的方法有哪些
    这篇文章主要介绍数据库优化的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据库优化的几种方式分别是:1、选取最适用的字段属性;2、使用连接来代替子查询;3、使用联合来代替...
    99+
    2024-04-02
  • 如何使用PHP读取数据库中的前几条记录?
    如何使用PHP读取数据库中的前几条记录? 在开发Web应用程序时,我们经常需要从数据库中读取数据并展示给用户。有时候,我们只需要显示数据库中的前几条记录,而不是全部内容。本文将教您如何...
    99+
    2024-04-02
  • php获取json数据的方法有哪些
    在PHP中,可以使用以下方法来获取JSON数据:1. 使用file_get_contents()函数:可以通过使用file_get_...
    99+
    2023-08-26
    php json
  • ajax获取json数据的方法有哪些
    在AJAX中获取JSON数据的方法有以下几种:1. 使用原生JavaScript的XMLHttpRequest对象进行请求和获取数据...
    99+
    2023-09-13
    ajax json
  • php获取post数据的方法有哪些
    在PHP中,可以使用以下方法来获取POST数据:1. $_POST:这是一个预定义的全局变量,用于接收通过POST方法提交的数据。可...
    99+
    2023-09-07
    php
  • 使用sqlplus命令登录Oracle数据库的方法有哪些
    有以下几种方法可以使用sqlplus命令登录Oracle数据库:1. 在命令行中输入sqlplus命令,然后输入用户名、密码和数据库...
    99+
    2023-08-18
    sqlplus Oracle数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作