小木的学习日记-SQL数据排序与去重

SQL分组排序去重复的小实例 代码如下:SELECT    *FROM    (        SELECT            userid,            classid,            remark,            ROW_NUMBER () OVER (                PARTITION BY userid,                classid            ORDER BY                addtime DESC            ) AS row_bank        FROM            Eng24VIPCourseI 立即下载

排序又分为两种,由低到高与由高到底排序。而ORDER BY 便可以实现这个功能

ORDER BY

比如:

查找orders(订单表)中的所有数据,并将查找结果按照total_price(订单价格)升序排列。

升序 ASC

降序 DESC
 

SELECT *
FROM orders
ORDER BY total_price;  (若无明显命令 默认由低到高(ASC))如果是 ORDER BY total_price DESC;则是由高到低

这是ORDER BY total_price DESC;的结果--降序排列

上面操作是针对单列进行排序操作,那如果是多列呢?

SELECT *
FROM orders
ORDER BY total_price,order_time DESC;----这样可以吗???  不可以!!其输出结果是对order_time进行的降序,并没有涉及到total_price
正确的写法应该是
ORDER BY total_price DESC,order_time DESC;

LIMIT--一个关键字,表明对要取的数据的数量进行限制。 

比如LIMIT 10 意思就是我只要10条数据就欧克了

又比如LIMIT 10,3就是表示跳过前 10 个记录从第11个开始向后取 3 条数据。

SELECT *
FROM orders
ORDER BY total_price DESC
LIMIT 10;--只取total_price 的前10条数据;

DISTINCT

(distinct adj --截然不同的)所以他是用来去重的哈哈哈。

SELECT DISTINCT district   去重account_2c表中的district列
FROM account_2c;

简洁版

SQL排序与限制操作详解

一、单列排序规则
  • 升序排列:ORDER BY 列名 ASC 或省略排序方式(默认ASC)
SELECT * FROM orders 
ORDER BY total_price; -- 等价于ORDER BY total_price ASC

  • 降序排列:必须显式声明DESC
SELECT * FROM orders 
ORDER BY total_price DESC;

二、多列组合排序
  • 错误示例:ORDER BY total_price,order_time DESC
    该写法仅对最后一个字段生效,等价于:

    ORDER BY total_price ASC, order_time DESC
    

  • 正确写法:

    SELECT * FROM orders
    ORDER BY total_price DESC, order_time DESC; -- 双字段均降序
    

    多字段排序时,每个字段需单独指定排序方式,字段优先级按从左到右顺序执行

三、结果集限制
  • 基础限制:LIMIT 数字

    SELECT * FROM orders
    ORDER BY total_price DESC
    LIMIT 10; -- 取价格最高的前10条
    

  • 分页限制:LIMIT 偏移量,数量

    SELECT * FROM orders
    LIMIT 10,3; -- 跳过前10条,取第11-13条(共3条)
    

四、数据去重
  • 单列去重:

    SELECT DISTINCT district 
    FROM account_2c; -- 返回唯一行政区划值
    

  • 多列组合去重:

    SELECT DISTINCT province, district 
    FROM account_2c; -- 返回省份+行政区的唯一组合
    

五、综合应用示例
SELECT DISTINCT province, district 
FROM account_2c
WHERE create_time > '2023-01-01'
ORDER BY province ASC, district DESC
LIMIT 5;

该语句实现:

  1. 筛选2023年后创建的账户
  2. 去除省份+行政区的重复组合
  3. 按省份升序优先排序,同省份按行政区降序排列
  4. 最终取前5条记录

特殊说明:LIMIT 10,3在不同数据库中的实现可能略有差异,MySQL等数据库支持该语法,部分数据库要求使用LIMIT 3 OFFSET 10格式。

Everything that kills me makes me feel alive ——《Counting Stars》

C#【必备技能篇】Winform实现多语言切换(.resx文件的应用) 在实际的项目开发中,软件需要实现多语言切换。本文通过一个实际的例子,可以让你学习到这个技能。 阅读详情

相关推荐

SVPWM原理与MCU/FPGA实现:从数学推导到工程实战

空间矢量调制(SVPWM)是实现高性能电机驱动控制的核心算法之一,其通过六个基本电压矢量与零矢量的伏秒平衡,在一个PWM周期内合成任意方向的旋转电压圆,相比传统SPWM可提升约15%的直流电压利用率。该技术不仅涉及扇区判断、作用时间计算、过调制限幅等数学原理,还在MCU与FPGA两种硬件平台上有不同的工程实现路径,包括中心对齐PWM配置、死区插入、定点数流水线设计等。在电动工具、无人机、机器人及车载执行器等电池供电场景中,SVPWM直接决定续航与扭矩表现。本文从数学原理出发,详细拆解MCU和FPGA实现细节

weixin_34265814的博客 301

sql先排序后去重

https://www.cnblogs.com/dsj2016/p/10679366.html 注意对时间进行排序时,需要取最大值MAX(createTime) DESC SELECT TOP 10 orgName FROM Test_Report_log WHERE renCode = '0000' GROUP BY orgName ORDER BY MAX(createTime) DESC;

M983373615的博客 1256

JavaScript性能优化:全链路性能优化策略

JavaScript性能优化是提升Web应用质量的核心要素,直接影响用户体验与业务成果。研究表明,页面加载延迟1秒可能导致转化率下降7%。高效的JavaScript执行能减少主线程阻塞,避免动画卡顿或操作延迟,尤其在移动端低性能设备上更为关键。优化内存管理与减少冗余计算可降低浏览器资源消耗,防止因内存泄漏导致的崩溃,提升应用稳定性。在竞争激烈的互联网环境中,性能优势已成为产品差异化的关键因素,直接影响用户留存与商业价值。因此,性能优化应作为开发全周期的核心实践,而非事后补救措施。

weixin_49707375的博客 1272

MySQL-先排序后去重

前言:近来开始写后端,先从小bug入手,记录下有趣的SQL 1.需求:根据表中的a字段排序,然后再根据b字段去重 2.实现: 第一个sql语句: SELECT DISTINCT name FROM student WHERE id='1111' ORDER BY age DESC 发现结果集中已去重,但是并没有依据需求排序。查了一些资料,说需要将排序的字段添加到去重列中,这明显不符合初衷。有的MySQL版本还会报错。 第二个sql语句: SELECT DISTINCT name

JustDI0209的博客 3886

【VAX 小番茄安装详细步骤】

本文详细介绍了在VS2022环境下安装Visual Assist X(番茄助手)的步骤及常见问题解决方案。主要内容包括:安装前的兼容性设置(需修改为Windows7兼容模式)、安装流程(卸载旧版本、勾选对应VS版本、替换关键dll文件)以及常见问题处理(如安装失败、工具栏图标缺失等)。文章提供了完整的下载链接和操作截图,特别强调了安装失败后的清理方法(注册表、安装目录和残余文件删除)。最后给出了安装成功后的测试运行指引。

qq_23962581的博客 1718

华硕主板UEFI模式下安装Ubuntu与Windows双系统全攻略

本文详细讲解了在华硕主板UEFI模式下安装Ubuntu与Windows双系统的完整流程。从安装前的BIOS关键设置(如处理安全启动与CSM)、使用GPT分区表,到在Windows中安全分配空间、手动创建Ubuntu分区,最后完成引导配置,提供了避免常见错误的实用技巧,确保双系统稳定共存。

weixin_29199873的博客 346

mysql 先排序再去重,Mysql DISTINCT问题

问题描述因为要设计一个数据库表,进行一个倒序去重的操作。例如:idName1B2A3A4C5C6B场景:例如说我们需要得到一个用户的搜索记录,那么肯定不会仅仅根据时间倒序排序给出列表展示,因为这样会出现重复的问题。我们需要去重,并且保证用户对一个搜索记录是按照最后一次搜索操作的时间排序的。用以上用例去描述,id为添加顺序,Name为查询记录,我们需要Sql查询的结果为BCA。一开始选择使用了DIS...

weixin_30259017的博客 3321

Anolis OS 23实战:5分钟搞定AI环境配置(含NVIDIA驱动一键安装)

本文详细介绍了如何在Anolis OS 23上快速配置AI开发环境,包括NVIDIA驱动的一键安装和TensorFlow、PyTorch等AI框架的部署。通过智能硬件适配引擎和优化后的二进制包,用户可在5分钟内完成传统需要数小时的配置工作,显著提升AI项目开发效率。

weixin_30335575的博客 536

sql如何先排序再去重

场景 有一张得分表(score),记录了用户每次的得分,同一个人可能有多个得分。 id name score 1 tom 45 2 jack 78 3 tom 34 . . . 需求:找出分数最高的前5个人。 SQL1 首先我们写个最简单的sql: select id, name, score from score order by ...

weixin_30387663的博客 2179

C++中const和指针*的组合问题

今天在复习> 章节7.3的时候想到以前做的一个题,const和指针运算符*的若干种组合的合法性和意义问题,有点混淆,所以写了一个测试代码来验证一下,简单明了,一目了然。如果有什么遗漏的话欢迎指出。 首先是在Ubuntu14.04.1下用gcc 4.8.4编译运行的结果,编译器报错信息都附加在对应语句后面的注释里 /* * Note : Test for the combinations of

theColdOne的专栏 1081

基于FFT的轴承故障诊断 - MATLAB代码和详细解释

最后,我们可以根据异常特征的位置和特征分析来确定轴承故障的类型。最后,我们可以根据异常特征的位置和特征分析来确定轴承故障的类型。因此,通过分析频谱图,我们可以识别轴承故障的特征。因此,通过分析频谱图,我们可以识别轴承故障的特征。我们可以选择适当的阈值,并在频谱图上标记异常特征。通过这种基于FFT的轴承故障诊断方法,我们可以快速、准确地检测和诊断轴承故障。接下来,我们将应用FFT来获取振动信号的频谱信息,频谱显示了信号在不同频率上的能量分布。通过将异常特征标记在频谱图上,我们可以直观地识别轴承故障的存在。

COWizard的博客 613

用cmd命令启动mysql,并操纵数据库并附上mysql常用命令语句以及语法

##用cmd命令启动mysql,并操纵数据库,并附上python连接mysql常用命令以及语法。 1.启动服务并登录Mysql(输入用户名及密码) 2.查看数据库 3.查看数据库中的表格 mysql常用命令语句以及语法 一 、常用操作数据库的命令 1.show databases; 查看所有的数据库 2.create database test; 创建一个叫test的数据库 3.drop da...

qzwqx的博客 1009

AUTOSAR汽车电子嵌入式编程精讲300篇-基于加密算法的车载CAN总线安全通信

随着科学技术的不断更新和社会文明的不断进步,汽车已经走入寻常百姓家, 成为当代社会必不可少的交通工具。伴随着互联网技术的飞速发展,汽车也不再 是一个简单的交通工具,已经逐渐发展成为一个集出行、通信、娱乐等功能于一 身的综合智能体,进而推动了车联网产业的蓬勃发展。车联网是在传统汽车的框架上安装了传感器、执行器、控制器等分布式和集 中式控制器,使汽车具备环境感知、协同控制、优化执行等功能,并通过网络技 术实现与车外环境的信息共享,给驾驶带来方便的同时也终将成为可以替代人操 作的新一代汽车[1-3]。

getusushu的博客 2591

小木的学习日记-SQL中分组与数据统计

比如你在A店铺,6月1日买了一个东西,然后第二次进行交易时6月5日又再该店铺有买了一个,则R时间间隔就是4天(5-1 哈哈哈)当你能用 5 行 SQL 算出客户的「R=7 天,F=15 次,M=8888 元」时,你已经超越了 80% 仅凭直觉做决策的运营者。在MYSQL数据库中,对于一个单元格有多个数据的列不能直接用SELECT取出其中所有的元素。假设你是电商运营,面对 10 万条订单数据,如何快速区分「高价值客户」和「沉睡客户」?(用「错误案例 + 修正方案」强化记忆,符合《原则》的复盘思维)

GetOver_的博客 941

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

小木的学习日记-SQL按条件筛选数据

核心能力:筛选(WHERE)、排序(ORDER BY)、限制(LIMIT)的组合使用。避坑指南时间数据加引号,区分NULL与0。牢记子句执行顺序,避免WHERE中使用SELECT别名。实战价值:从电商折扣分析到用户画像筛选,WHERE是数据清洗和分析的第一步。

GetOver_的博客 693

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MySQL-排序加去重sql语句

最近在重新复习mysql数据库 下面是一张学生表student 需要将重复的姓名name字段进行去重,然后学生的生日birthday 字段筛选出最早的时间进行降序。 我用到的是GROUP BY函数进行分组去重,先将查出 birthday 字段进行分组并且降序。 SELECT * from student GROUP BY birthday ORDER BY birthday DESC 结果如下:排序需求已经完成了,现在还需要名字去重,那就把上面的 sql语句复制一下继...

NatChan的博客 2835

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

sql先排序再去重

一、 select rs.* from (SELECT * from common_role_menu ORDER BY create_time desc) rs GROUP BY rs.role_id(待验证) 二、 select a.* from common_role_menu a where a.create_time = (select max(create_time) from ...

qq_17152035的博客 4179

mysql使用技巧之去除重复数据

去除重复数据 三种方式, 直接用district,查询到的数据过滤一下,这种方式可以避免重复,但是,数据库数据没有发生变化 使用group by : 假设你的使用场景和我的一样,都是id不重复,但是里面的数据是重复的了,那么: 首先用分组查出重复数据,然后删除id最大的一个: //这句话其实是查询出重复部分(name,class)和它的主键id SELECT max(ID) as eid,...

qq_42031483的博客 436

Mybatis sql模糊查询(先排序后去重)和时间范围查询

模糊查询 模糊查询本身用like关键字即可: SELECT DISTINCT field_name FROM table_name WHERE field_name LIKE "%"#{fieldName,jdbcType=VARCHAR}"%" 这里要注意"%"的使用,如果不加的话,mybatis会解析错误 另外,jdbcType=BIGINT的模糊查询存在问题 一般模糊查询都需要去重,会用到distinct关键字,但我们的需求又希望能输出按某个字段排序的前几个,比如:按时间倒序的前五个,这个时候s

wyplj2015的博客 1848

mysql中去重 distinct 用法

mysql中去重 distinct 用法

sky198989的博客 158

SQL-DQL中排序、去重与LIMIT查询

LIMIT分页查询,按照商品价格由低到高排序,然后获取第二页的内容(每页3条)DISTINCT是针对查询结果中的整行内容进行去重,不是单个字段。注意:SQL语句的执行顺序往往和我们写SQL的顺序是不一样的。:可以根据多列排序,前列值相同的数据,再根据后列值排序。(M索引,从0开始 + N代表查询数量)(当前页页码 - 1) * 每页数量,每页数量。SQL查询中DISTINCT去重的使用。,默认是0,代表从第M+1行开始。SQL中LIMIT查询的使用)SQL中针对查询结果的排序。字段1,字段2,...

2201_75287218的博客 637

sql总结1【去重和排序】

sql去重和排序,以及union情况下如何排序(union 的优先级高于 order by)

qq_43707533的博客 2018

C# List使用District去重复数据

class ListDistinctDemo { static void Main(string[] args) { List<Person> personList = new List<Person>(){ new Person(3),//重复数据 ...

weixin_30530523的博客 433

sql数据库去重后排序

select * from tb_KeyWords where i_KeyId not in( select Min(i_KeyId) from tb_KeyWords group by vc_Keyname having COUNT(vc_Keyname)>1 ) order by i_KeyId desc

zhaohjjq的专栏 2479

mysql先排序后去重

mysql先排序后去重的写法: SELECT * FROM ( SELECT DISTINCT * FROM A ORDER BY `created` DESC ) A GROUP BY user_id order by created cesc

licyXiaobaiyang的博客 1万+

SQL 先排序再分组优化方案

传统写法: SELECT * FROM ( SELECT * FROM report_member_advance WHERE company_id = '001' ORDER BY id DESC) a GROUP BY a.member_id LIMIT 20; 效率低下,使用pageHelp分页还会出现总条数问题。   优化方案如下:使用内链接 SELECT * FROM repo...

代码小学生的博客 1237
上一篇: 小木的算法日记-2-二叉树基础及常见类型
下一篇: 小木的学习日记-SQL按条件筛选数据
木旭林晖
博客等级 码龄2年 159粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值