SQL学习(五)查询结果过滤和排序

2023-10-29

如果初学,看看基础语法直接结合例子来看更容易理解。

基础语法

  • DISTINCT
选取出唯一的结果的语法
SELECT DISTINCT column, another_column, …
FROM mytable
WHERE condition(s);

DISTINCT 语法会直接删除重复的行,即排重。

  • GROUP BY
结果排序(ordered results)
SELECT column, another_column, …
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC;

ASC表示升序排列 A~Z
DESC表示降序排列 Z~A

  • LIMIT 和 OFFSET
limited查询
SELECT column, another_column, …
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC
LIMIT num_limit OFFSET num_offset;

对整个结果集排序之后,我们可以 LIMIT来指定只返回多少行结果 ,用 OFFSET来指定从哪一行开始返回。

练习

练习题出自自学SQL

  1. 按导演名排重列出所有电影,并按导演名正序排列
# 按照导演名 排重 列出所有电影
SELECT DISTINCT director FROM movies
# 按照导演名正序排列
ORDER BY director ASC

注意 DISTINCT 排重,只取director属性。

  1. 列出按上映年份最新上线的4部电影
SELECT * FROM movies
# 按照年份降序排列
ORDER BY year DESC 
# 取出其中前4条数据
LIMIT 4
  1. 按电影名字母升序排列,列出前5部电影
SELECT * FROM movies
# 按照电影名字升序排列
ORDER BY title ASC 
# 取前5部电影
LIMIT 5
  1. 按电影名字母序升序排列,列出上一题之后的5部电影
SELECT * FROM movies
# 按照名称升序排列
ORDER BY title ASC 
# 从第五条数据开始取出5条后面的数据
LIMIT 5 OFFSET 5

LIMIT num0 OFFET num1,LIMIT指示选取长度,OFFET指示从哪里开始选取。

  1. 如果按片长排列,John Lasseter导演导过片长第3长的电影是哪部,列出名字即可

先取出整行数据

SELECT * FROM movies
# 取出John Lasseter导演的所有电影
WHERE director LIKE "John Lasseter"
# 按照片场升序排列
ORDER BY length_minutes ASC
# 取出第三长的数据
LIMIT 1 OFFSET 2;

再用title筛选,取出名字即可

SELECT title FROM movies

WHERE director LIKE "John Lasseter"

ORDER BY length_minutes ASC

LIMIT 1 OFFSET 2;

这里可以考虑一下执行效率的问题

  1. 按导演名字母升序,如果导演名相同按年份降序,取前10部电影给我
SELECT * FROM movies
# 导演名升序,年份降序
ORDER BY director ASC, year DESC
# 取出前10个数据
LIMIT 10;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL学习(五)查询结果过滤和排序 的相关文章

  • 如何创建针对不同渠道不同的数据库序列?

    我们有一个要求 即需要为不同的渠道维护不同的数据库序列 例如 ABC SQN1 XYZ 1 序列号需要根据通道递增 有没有办法我们可以实现它 Thanks 你的问题不清楚 请更详细地描述要求 我知道你想要一些序列并有条件地增加它们 这样 c
  • Sql查询增加多个项目的项目价值价格

    我想编写 Sql 查询来按百分比增加商品价格 场景是 在表中 我有 3 列 ID 商品名称 价格 Example If item Name is T shirt Increase price by 10 item Name is Jins
  • Sql Server 2008 强制日期从 dd/MM/yyyy 到 MM/dd/yyyy

    我在 sql server 2008 上遇到了一个奇怪的问题 我试图用dd MM yyyy格式写入sql server 2008 但是插入日期后它会自动转换为MM dd yyyy 注意 我的电脑时钟格式是dd MM yyyy 我的报告查看器
  • 从表变量中获取列的明确名称

    我可以这样声明一个表变量 DECLARE tv source TABLE c1 int providerName varchar 50 providerSMS varchar 50 如果我执行以下命令 我会看到类似于以下内容的表名称 468
  • 在Django中通过ManyToMany关系添加一个对象

    Django 的 ManyToMany 字段 https docs djangoproject com en dev ref models fields django db models ManyToManyField可以使用填充my fi
  • INSERT INTO 存储过程的输出

    我正在编写一个存储过程 首先在表中插入一个新行 然后 另一个查询需要此查询生成的 ID 是否可以使用 OUTPUT 访问预先生成的 ID 这就是我到目前为止所做的 这几乎是一个猜测 但没有成功 ALTER PROCEDURE dbo add
  • TFS 2017 如何使用 SQL 查询工作项

    我正在寻找一种使用 SQL 选择直接从 TFS 的 SQL 数据库查询工作项的方法 对于 TFS 2010 您可以使用一些数据库视图来实现此目标 TFS2010 如何在关系仓库上使用 SQL 查询工作项 https blogs msdn m
  • 在 PostgreSQL 中向日期添加月份显示语法错误

    我使用的是Postgres 9 0版本 我想在日期中添加一些月份来计算新日期并在表中更新 这里要添加的月份数将是整数变量 我的代码如下 declare numberofmonths smallint 5 update salereg1 se
  • Oracle 中的 if(条件, then, else)

    MySQL MSSQL 有一个简洁的小内联 if 函数 您可以在查询中使用它来检测空值 如下所示 SELECT foo a field AS a field SELECT if foo bar is null 0 foo bar AS ba
  • 邮政编码 10 位数字字符使用的约束检查

    我有一张桌子 上面有Char 10 列类型 命名postal Code我需要对所有值进行约束检查 就像 10 位数字一样1234567890没有别的 我使用以下内容 CONSTRAINT CH PCDigit CHECK PostalCod
  • mysql 中的 SELECT UNION 和 ORDER BY.. 如何?

    我想从单个表中获取所有行 但以不同的方式对它们进行排序 例如我写 SELECT FROM table1 ORDER BY fieldA ASC LIMIT 3 UNION SELECT FROM table1 ORDER BY FieldB
  • Python - 将列表作为参数传递给 SQL,以及更多变量

    我试图在 python 3 6 中将未知数量的参数传递给 SQL Server 这是我使用 pypyodbc 的代码 cursor cnxn cursor theargs 1033286869 1053474957 1063654630 1
  • 如果值不为空,则更新数据库的 SQL 查询?

    我有一个大约有 17 个字段的表 我需要在此表中执行频繁更新 但问题是每次我可能只更新几个字段 在这种情况下编写更新查询的最佳方法是什么 我正在寻找一个选项 其中仅当值不为空时才会更新 例如 我在数据库中有四个字段 A B C D 用户更新
  • 恢复 woocommerce 订单

    最近 我的服务器团队更换了我的数据库 他们将我们以前的数据库放入其中 因此 我们丢失了某一天 特定日期 的订单详细信息 现在 服务器团队提供包含丢失当天订单详细信息的备份 现在请告诉我如何恢复这些订单 我无法用给定的备份替换我们的数据库 因
  • 如何将mysql的默认端口从3306更改为3360

    我想更改MySQL服务器的默认端口号 目前它是3306 我想将其更改为3360 我努力了 port 3360 但事情对我不起作用 请提供更改端口的查询 而不是任何配置 我使用的是 Windows 8 64 位 您需要编辑您的my cnf文件
  • SQL仅选择列上具有最大值的行[重复]

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 这个问题在这里已经有答案了 我有这个文件表 这里是简化版本 id rev content 1 1 2 1 1 2 1 3 如何
  • SQL 缓存依赖关系的性能问题

    我正在开发一个项目 我们正在考虑将 SQLCacheDependency 与 SQL Server 2005 2008 一起使用 我们想知道这将如何影响系统的性能 所以我们想知道以下问题 SQLCacheDependency 对象 查询通知
  • MS Access - WHERE IN 有效,但 WHERE NOT IN 失败

    我在 MS Access 上有以下查询 简化 SELECT FROM table1 WHERE table1 ID NOT IN SELECT DISTINCT table1id FROM table2 我的问题是它不起作用 但是这两个起作
  • JavaFX ComboBox - 显示文本但在选择时返回 ID

    我有一个包含机场的数据库表 每个机场都有一个名称和一个 ID 在 JavaFX 中我有一个表单 其中包含ComboBox 组合框需要显示所有机场名称 并且在提交表单时需要将机场的 ID 插入数据库 而不是其名称 但我并没有真正弄清楚解决方案
  • NHibernate 排序(SQL 作为第二个选项)

    我正在使用 NHibernate 作为我的 ORM 并且正在尝试对一些数据进行排序 数据需要分页检索 我的请求表中的两列是 UrgencyID 和 CreateDate UrgencyID 是包含静态数据的 Urgency 表的 FK 1

随机推荐

  • 如何检查 Linux 中的程序和监听的端口

    在 Linux 或者类 Unix 中 我该如何检查某个端口是否被占用 我又该如何验证 Linux 服务器中有哪些端口处于监听状态 验证哪些端口在服务器的网络接口上处于监听状态是非常重要的 你需要注意那些开放端口来检测网络入侵 除了网络入侵
  • LRU Cache的数据结构选择以及实现

    LRU LRU是Least Recently Used的缩写 意思是最近最少使用 它是一种Cache替换算法 什么是Cache 狭义的Cache指的是位于CPU和主存间的快速RAM 通常它不像系统主存那样使用DRAM技术 而使用昂贵但较快速
  • STC 32位8051单片机开发实例教程 二 I/O工作模式及其配置

    1 I O工作模式 STC 32G系列单片机最多有64Pin引脚 最多有60个I O口 如下图示 STC32G系列单片机的 I O口都有4种工作模式 准双向口 弱上拉 推挽输出 强上拉 高阻输入 电流不能流入也不能流出 开漏输出 P30 P
  • C/C++语言中的注释:功能、符号和使用方法详解

    目录 引言 注释的功能 注释符号 单行注释 多行注释 注释结尾问题 利用预处理实现多行注释 示例代码和解析 结论 引言 在C语言中 注释是一种非常有用的工具 可以帮助程序员在代码中添加说明 解释和备注 本文将深入探讨注释的功能 不同注释符号
  • MAC中文版 FCPX V10.6.5 专属视频剪辑后期工具及其插件安装使用教程

    Final Cut Pro X简介 Final Cut Pro X又名FCPX 是MAC上非常不错的视频非线性剪辑软件 它剪辑速度超凡 具有先进的调色功能 HDR 视频支持 以及 ProRes RAW 让剪辑 音轨 图形特效 整片输出 支持
  • 网络 ip tcp/udp dhcp dns rip/ospf

    网络 七层网络模型 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 物理层定义了一系列传输介质的电气标准 这个是弱电工程师关心的 数据链路层 封装成帧 差别检错 透明传输 MAC地址 通过CRC循环冗余校验生成校验码 放在数据包
  • 44黑马QT笔记之IP地址的划分与是否在同一网段

    44黑马QT笔记之IP地址的划分与是否在同一网段 前提 1 网络ID ip地址的第一个字节 2 网络地址 在这里你可以认为它就是网络ID 3 网段 用来区分网络上的主机是否在同一区段内 只要知道ip地址和子网掩码就知道该网段 在局域网中只有
  • MySQL多字段去重

    创建学生成绩表grade grade表的字段说明 id表示学生编号 name表示学生姓名 gender表示学生性别 score表示学生分数 create table grade id int name char 1 gender char
  • 自动化测试学习路线

    1 前端开发基础 HTML JS CSS 2 浏览器调试工具 F12 FireBug Chrome浏览器 3 接口测试工具使用 PostMan SoapUI Jmeter HttpClient UrlConnection Requests
  • ubuntu下编译linux内核

    1 下载linux内核源文件 www kernel org 2 安装有关编译工具 sudo apt get install build essential kernel package libncurses5 dev 3 把内核复制到 us
  • 【老生谈算法】基于matlab的车牌识别算法详解及程序源码——车牌识别算法

    基于matlab的车牌识别系统设计与算法原理 大家好 今天给大家介绍基于matlab的车牌识别系统设计与原理 车牌识别系统 License Plate Recognition 简称LPR 是智能交通系统 ITS 的核心组成部分 在现代交通管
  • 组件不更新怎么办!??

    适合多日 碰到了个莫名其妙的问题 上传图片后 列表组件没有更新 非要刷新页面或者切换组件才能更新 之前的暂时解决方案是 上传图片后手动刷新页面 非常不友好的交互 终于忍不住了 想办法解决它 想了很多办法 怎么都没有办法刷新页面 最后突然想到
  • python不同数据类型进行转换

    代码实现 代码如下 示例 name 张三 age 20 print 我叫 name 今年 str age 岁 不同类型转换为str类型 a 10 b 198 8 c False print str a str b str c 转为字符串格式
  • chainWebpack之optimization.splitChunks的cacheGroups缓存组代码分块实践案

    研究了好几天webpack打包 我们项目是vue的高版本 已经没有了webpack config js文件了 是直接在vue config js里的chainWebpack方法直接配置 这样做法的好处是用户既可以保留webpack的默认配置
  • sql 列求和_比较几种条件求和的方法——推荐PowerBI

    比较几种条件求和的方法 1 Excel鼠标框选 配合使用筛选功能 界面右下角显示求和结果 优点 可以快速 直观地满足一次简单的业务需求 缺点 只能快速地满足一次比较简单的查询需求 且求和结果无法被记录 2 Excel公式 sum sumif
  • 不支持请求方法POST或GET的一种解决方法

    Request method POST not supported 已解决 该错误一般是请求类型对不上导致的 比如PostMapping和GetMapping请求 一般错误发生在下图所示位置 我把Post和Get搞错了 RequiresAu
  • 线程的几种状态

    目录 前言 一 线程是什么 二 线程状态 1 新建状态 New 2 就绪状态 Runnable 3 运行状态 Running 4 阻塞状态 Blocked 5 等待状态 超时等待 Waiting Timed Waiting sleep 和
  • HTTP1.0、HTTP1.1 和 HTTP2.0 的区别

    原文 https mp weixin qq com s GICbiyJpINrHZ41u 4zT A 一 HTTP的历史 早在 HTTP 建立之初 主要就是为了将超文本标记语言 HTML 文档从Web服务器传送到客户端的浏览器 也是说对于前
  • 域名简单认识

    什么是域名 域名 Domain Name 是由一串用 点 分隔的字符组成的Internet上某一台计算机或计算机组的名称 用于在数据传输时标识计算机的电子方位 有时也指地理位置 地理上的域名 指代有行政自主权的一个地方区域 域名是一个IP地
  • SQL学习(五)查询结果过滤和排序

    如果初学 看看基础语法直接结合例子来看更容易理解 基础语法 DISTINCT 选取出唯一的结果的语法 SELECT DISTINCT column another column FROM mytable WHERE condition s