你能解释一下这个查询的逻辑吗

2024-03-30

我有一个查询,查找薪水第四高的老师的姓名。我不明白这部分

SELECT COUNT (DISTINCT T2.salary)
FROM teacher as T2
WHERE T2.salary > T1.salary
) = 3

from

SELECT name
FROM teacher as T1
WHERE (
SELECT COUNT (DISTINCT T2.salary)
FROM teacher as T2
WHERE T2.salary > T1.salary
) = 3;

我理解的方式count是它给出了最终结果,而不是我们可以通过指定一个数字来中断它的工作。

这是teacher table: https://i.stack.imgur.com/arm8d.jpg https://i.stack.imgur.com/arm8d.jpg(由于服务器错误,无法上传)


重点关注子查询:

SELECT COUNT(DISTINCT T2.salary)
FROM teacher AS T2
WHERE T2.salary > T1.salary

这将返回有薪水的不同教师的数量greater比老师,在每一行teacher桌子。断言此计数等于 3 意味着任何匹配的教师都将拥有第四高的工资(因为排除了前 3 个职位)。

请注意,您的逻辑应与以下行为相同DENSE_RANK。您还可以使用:

WITH cte AS (
    SELECT *, DENSE_RANK() OVER (ORDER BY salary DESC) rnk
    FROM teacher
)

SELECT name
FROM cte
WHERE rnk = 4;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

你能解释一下这个查询的逻辑吗 的相关文章

  • 如何从 SQL Server 2008 返回由共享公共父级的多个选择构成的 XML

    我尝试过使用 FOR XML PATH FOR XML EXPLICIT 和 FOR XML AUTO 但数据从未采用正确的层次结构构建 基本上 我有一张父表 客户 和 3 个子表 每个表都有一个 customerid 列 Customer
  • 如何证明2条sql语句是等价的

    我开始用连接和子语句重写一个复杂的 SQL 语句 并获得一个看起来更简单的语句 我通过在相同的数据集上运行并获得相同的结果集来测试它 一般来说 我如何 概念上 证明这两个陈述在任何给定数据集中都是相同的 我建议学习关系代数 正如 Mchl
  • 使用 MYSQL 创建随机数

    我想知道是否有一种方法可以选择 100 到 500 之间随机生成的数字以及选择查询 Eg SELECT name address random number FROM users 我不必将此数字存储在数据库中 而只需使用它来显示目的 我尝试
  • Oracle 奇怪的 SUM 行为

    我有两个查询 据我了解 这两个查询应该提供相同的结果 但事实并非如此 显然我在这里遗漏了一些重要的观点 我希望你能帮助我 查询 我认为这是错误的 SELECT SUM a amount AS A SUM 10 727 470 FROM bi
  • Django 视图中的原始 SQL 查询

    我将如何使用原始 SQL 执行以下操作views py from app models import Picture def results request all Picture objects all yes Picture objec
  • FROM 子句中子查询末尾随机字母的含义 - SQL

    我终于成功将两个sql sum查询的结果求和了 这家伙迈出了一小步 我的问题与代码中的最后一个字符 Z 有关 SELECT SUM hr FROM SELECT SUM amount AS hr FROM Try again dbo tue
  • Oracle SQL 查询日期格式

    我总是对 ORACLE SQL 查询中的日期格式感到困惑 并花几分钟时间去谷歌 有人可以向我解释当数据库表中有不同格式的日期时解决问题的最简单方法吗 例如 我有一个日期列为 ES DATE 保存的数据为 27 APR 12 11 52 48
  • 会员提供商使用还是不使用?

    我正在开发一个使用 Facebook 的网站 现在为了管理用户我想使用MembershipProvider并选择开发一个定制的会员提供商 我的问题是我的数据库架构与标准成员资格架构不匹配 并且提供的用于覆盖的函数采用与我预期不同的参数 例如
  • INSERT INTO ... SELECT ... 是否始终按序号位置匹配字段?

    我的测试似乎证实了这一点 INSERT INTO a x y SELECT y x FROM b maps b y to a x 即字段仅按顺序位置匹配 而不按名称匹配 情况总是如此吗 即 我可以依赖这种行为吗 很遗憾 文档 http ms
  • Postgres jsonb 使用更大的运算符在数组中搜索(使用 jsonb_array_elements)

    我尝试寻找解决方案 但没有找到适合我的情况的任何内容 这是数据库声明 简化 CREATE TABLE documents document id int4 NOT NULL GENERATED BY DEFAULT AS IDENTITY
  • 如何获取数字列的确切类型,包括。规模和精度?

    有没有办法知道列中列的确切类型DataTable 现在我正在这样做 DataTable st dataReader GetSchemaTable foreach DataColumn col in st Columns var type c
  • 连接查询或子查询

    开发人员何时使用联接而不是子查询是否有经验规则 或者它们是否相同 第一个原则是 准确地陈述查询 第二个原则是 简单明了地陈述查询 这是你通常做出选择的地方 第三个是 陈述查询 以便它能够有效地处理 如果它是一个具有良好查询处理器的数据库管理
  • Informix:带有输出参数的程序?

    我搜索了很多 但找不到任何东西 我只是想问是否有任何方法可以创建和调用过程 Informix 没有参数 我知道如何返回一个或多个值 对于过程和函数 但这不是我想要的 如果 Informix 不允许输出参数 那就真的很奇怪了 提前致谢 EDI
  • 使用每个单独行的多个“where”子句更新多行

    我正在尝试像这样更新我的表 Update MyTable SET value 1 WHERE game id 1 x 4 y 8 SET value 2 WHERE game id 1 x 3 y 7 SET value 3 WHERE g
  • 在自定义条件下清理 SQL

    我需要创建一个简单的搜索 但我无法使用 Sphinx 这是我写的 keywords input split s queries keywords each do keyword queries lt lt sanitize sql for
  • ORACLE 在立即执行中批处理 DDL 语句

    我正在尝试在一个 Execute Immediate 语句中运行多个 ddl 语句 我认为这会很简单 但看来我错了 想法是这样的 declare v cnt number begin select count into v cnt from
  • 通过 JDBC 与 CLI 使用 MIT Kerberos 连接到 PostgreSQL 9.4 时出错

    我已经使用 MIT Kerberos 5 设置了 PostgreSQL 9 4 并且可以使用 psql 在 CLI 上连接 提交指纹后 我的委托人是 bgiles postgres REALM pg hba conf 有 host all
  • MySQL如何进行浮点加法的数学计算?

    我测试过SELECT 0 1 0 2 用MySQL MariaDB 查询 它返回了正确的答案 MariaDB none gt SELECT 0 1 0 2 0 1 0 2 0 3 1 row in set 0 000 sec 在大多数编程语
  • Postgresql 和 jsonb - 将键/值插入多级数组

    非常类似于这个帖子 https stackoverflow com questions 58959678 postgresql add key to each objects of an jsonb array 但我很难适应他们的解决方案
  • T-SQL 相当于 =rand()

    我有几个内容表 我想用随机的文本段落填充它们 在 MS Word 中 我只需输入 rand 即可 我收到三段新鲜的文字 是否有 SQL 脚本 命令可用于使用 t sql 生成随机字典单词 declare Lorem nvarchar max

随机推荐

  • 无法在 GitHub 上呈现标头

    这是我的README md在 GitHub 存储库中 This is a Header This is not a Header 这两行都呈现为纯文本 第一个应该呈现为标题 我记得它之前是这样的 我不知道我的浏览器 macOS 上的 Chr
  • 用 Java 实现最佳匹配搜索

    我正在尝试使用现有的 Java 数据结构获得最佳匹配字符串匹配 虽然速度很慢 但任何提高其性能的建议都将受到欢迎 样本数据看起来像这样 Key V 0060175559138 VIP 006017555 National 006017 Lo
  • 模板引用变量在 ng-template 内返回未定义

    已经尝试过this https stackoverflow com questions 45677905 angular4 component reference inside ng template and this https stac
  • 如何在 Windows 8 中以编程方式检查/切换飞行模式?

    我必须检查 Windows 8 中是否启用了飞行模式 并且可能需要切换其状态 我目前正在开发 C NET 4 0 Windows 窗体应用程序 但此问题的答案不应受此限制 不幸的是 Metro 应用程序没有一种编程方式来更改 Windows
  • 使用 API 创建 Amazon EC2 实例

    com amazonaws services ec2 是否包含从现有 AMI 创建全新 EC2 实例的方法 我希望通过 Java SDK 而不是 Web 管理控制台来执行此操作 以下是使用 Amazon AWS SDK for Java 创
  • Spring STS 不适用于 Gradle

    我已经下载了Spring STS 我创建了一个项目 新的 spring 启动项目 并选择了 gradle buildship 它说我没有 需要从市场上购买 我去了市场 得到了它 重新启动 创建了一个示例 gradle java 项目并编译它
  • MultipartEntityBuilder 从 Android httpurlconnection 发送数据

    我正在尝试更改 HTTPClient 已弃用的代码 但我在 setEntity 上收到错误 因为它已损坏 而且我不知道如何通过新的 httpConnectionUrl 来 paas MultipartEntityBuilder 我旧的已弃用
  • Postgres 使用数组格式化字符串

    我正在寻找一种使用数组格式化字符串的简单方法 如下所示 select format using array Hello s and s ARRAY Jane Joe format using array Hello Jane and Joe
  • 在react-virtualized 中添加padding-top

    我有一个
  • 如何检测父元素中的任何子元素是否具有某个类?

    我试图检测父 图库 div 中的任何子div 是否具有 show 类 div div class show div div div div div div if TEST CONDITION alert sub element with t
  • 从 OpenID 提供商检索电子邮件地址的通用参数

    在我的网站中 我使用基于 OpenID 的身份验证 我正在向 OpenID 提供商请求 电子邮件地址 问题是每个提供商在身份验证后在 GET 响应中以自己的参数发送电子邮件地址 我列出了我所看到的三个 堆栈交换 openid alias3
  • 在 EMR 4.0 中启动 Spark 时出错

    我创建了一个EMR 4 0AWS 中的实例以及所有可用的应用程序 包括Spark 我通过 AWS 控制台手动完成此操作 我启动了集群并在启动时通过 SSH 连接到主节点 我跑到那里pyspark 当我收到以下错误时pyspark尝试创造Sp
  • JUnit5 测试未从“application-test.yml”加载属性

    我正在尝试为我的服务类编写单元测试 该服务类依赖于配置属性类 MyService java Service RequiredArgsConstructor public class MyService private final MyCon
  • jmeter-如何获取当前日期和时间(以秒为单位)

    我想计算当前时间 以秒为单位 并将其用作我的 jmeter 测试计划中的参数 默认情况下 时间以毫秒为单位 有人可以帮我吗 您可以使用 time 函数 http jmeter apache org usermanual functions
  • SQL 查询来计算不同值的数量

    x y A P A P B P B Q 你好 我需要一个查询来返回 x 的所有唯一值 有多少个不同的 y 因此 对于上述数据 它将返回 x count A 1 B 2 Thanks 使用 GROUP BY 和COUNT DISTINCT h
  • 使用 ndk-gdb 调试 Android 本机应用程序

    我正在尝试在 eclipse 中使用 ndk gdb 调试具有一些本机 c 代码的 android 应用程序 似乎 gdb 服务器从命令行成功启动并正在接受命令 但在 Eclipse 中却显示了这个错误 从设备获取文件时出错 com and
  • UCWA 或 UCMA API 是否支持 Skype for Business Online?

    我们正在尝试找出最新的UCWA https msdn microsoft com en us library office dn324971 v office 16 aspx or UCMA https msdn microsoft com
  • Elastic beanstalk需要python 3.5

    我最近使用最新的稳定版本的 python 3 5 创建了一个新的 python 程序 不幸的是 AWS EB 不提供 3 5 基础镜像 我一直在尝试配置 ebextensions获取图像来升级 python 发行版 这是第一个操作 我还没有
  • 插入 id(自动生成,仅列)

    如果我想在表中插入一行 而该表只包含一个具有自动生成 ID 的列 那么我的 SQL 语句 MS SQL 应该是什么样子 以下两个查询不起作用 INSERT INTO MyTable MyTableId VALUES Null or simp
  • 你能解释一下这个查询的逻辑吗

    我有一个查询 查找薪水第四高的老师的姓名 我不明白这部分 SELECT COUNT DISTINCT T2 salary FROM teacher as T2 WHERE T2 salary gt T1 salary 3 from SELE