查找最大值并显示 SQL Server 中不同字段的相应值

2024-02-06

我有一个表,其中包含有关城市的数据,其中包括城市名称、人口和与我的问题无关的其他字段。

ID      Name    Population
1       A       45667   
2       B       123456  
3       C       3005    
4       D       13769   

找到最大人口是基本的,但我需要一个结果表,其中一列中有最大人口,另一列中有相应的城市名称

Population      Name    
123456          B       

我已经看过了similar https://stackoverflow.com/questions/376518/how-to-get-the-record-of-a-table-who-contains-the-maximum-value问题,但由于某种原因,答案看起来过于复杂。有没有办法将查询写成 1 或 2 行?


有几种方法可以做到这一点:

中的一个过滤器WHERE clause:

select id, name, population
from yourtable
where population in (select max(population)
                     from yourtable)

或者子查询:

select id, name, population
from yourtable t1
inner join
(
  select max(population) MaxPop
  from yourtable
) t2
  on t1.population = t2.maxpop;

或者你可以使用TOP WITH TIES。如果没有领带,那么您可以删除with ties。这将包括具有相同人口值的任何行:

select top 1 with ties id, name, population
from yourtable
order by population desc

由于您使用的是 SQL Server,您还可以使用排名函数来获取结果:

select id, name, population
from
(
  select id, name, population,
    row_number() over(order by population desc) rn
  from yourtable
) src
where rn = 1

See SQL 摆弄演示 http://www.sqlfiddle.com/#!3/92998/9 of all.

作为排名函数的旁注,您可能需要使用dense_rank()代替row_number()。然后,如果您有多个城市具有相同的人口,您将获得两个城市名称。 (看Demo http://www.sqlfiddle.com/#!3/e9df7/4)

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

查找最大值并显示 SQL Server 中不同字段的相应值 的相关文章

  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • 在 SQL 中将数字求小数次幂

    我试图在 MS SQL 中将一系列数字求小数 1 5 次幂 但在应用于负基数时出现 域错误 这应该不是问题 因为我要提升到奇次幂根 此外 我可以在 Excel 中进行计算 谁能评论一下 MS SQL 是否根本不支持将负幂提高到小数根 负基数
  • 如何从 SQL Server 存储过程返回值并在 Access VBA 中使用它们

    我已经在 SQL Server 中设置了一个运行良好的存储过程 我现在可以从 VBA 调用它 但想返回一个值以了解是否存在任何错误等 我的 SP 中的最后一个参数设置为 OUTPUT DataSetID int 0 Destination
  • 插入后,数据库中仅插入“字符串”的一个字符

    Below is my table screenshot Data after insertion C 代码 SqlConnection con new SqlConnection connectionsession Con con Ope
  • 如何避免使用 Cursor 来实现此伪代码 - SQL Server

    CREATE PROCEDURE p processDataFor accountId BEGIN for each item in select from Accounts where accountId accountId and is
  • 同时使用 GUID 和自动递增整数

    我一直在研究使用 GUID 作为数据库中的主键 到目前为止 利似乎大于弊 然而 我发现 GUID 可能不是我想要的 在我的应用程序中 用户应该能够根据用户友好的 ID 来识别对象 因此 例如 如果他们想要获取特定产品而不输入全名 则可以使用
  • c++ 最大 std::string 长度由堆栈大小或堆大小决定?

    正如问题中所问 std string myVar 它可以容纳的最大字符是由堆栈还是堆决定的 谢谢 默认情况下 分配的内存为std string是动态分配的 注意std string has a max size 函数返回实现支持的最大字符数
  • SQL Server:从 OPENDATASOURCE 中删除

    这有效 SELECT FROM OPENDATASOURCE Microsoft ACE OLEDB 12 0 Data Source d JobFiles MyFile xlsx Extended properties Excel 8 0
  • SQL:如何在按部分分组的查询中使用子查询?

    如何在按部分分组的查询中使用子查询 我使用 SQL Server 2008 R2 和 Delphi 2010 我收到此错误 Cannot perform an aggregate function on an expression cont
  • 无法删除 Access 中 SQL 表上的注册表

    我有一个在 Access 应用程序中链接的 SQL Server 表 如果我尝试使用删除查询删除记录 则没有问题 但是 如果我尝试直接在表中删除记录或在数据表模式下使用选择查询 Access 不允许我删除记录并引发以下警告 Microsof
  • T-SQL:用最新的非空值替换 NULL 的最佳方法?

    假设我有这张表 id value 1 5 2 4 3 1 4 NULL 5 NULL 6 14 7 NULL 8 0 9 3 10 NULL 我想编写一个查询来替换任何NULL值与表中最后一个不为空的值在那一栏里 我想要这个结果 id va
  • 使用 Dapper 插入时出现 NullReferenceException

    当我运行以下代码时 我收到一个 NullReferenceException 异常 指出对象引用未设置到该对象的实例 我已经使用不太复杂但格式相同的对象成功插入了 dapper 所以我不确定我做错了什么 public void Foo IE
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • 使用 Laravel Envoyer 上传特定供应商文件

    我正在尝试使用 Laravel Forge 仅将特定供应商文件上传到我的服务器 原因是因为我编辑了一些依赖项中的代码 现在发生的情况是我网站的某些功能正在破坏 因为当我从 Envoyer 推送到我的服务器时 Envoyer 正在从我的 Gi
  • Python 中阻止 GET 请求的解决方法

    我正在尝试使用 requests 和 beautifulsoup 检索和处理网络搜索的结果 我编写了一些简单的代码来完成这项工作 并且它成功返回 状态 200 但请求的内容只是一条错误消息 对于给您带来的不便 我们深表歉意 但该站点当前不可
  • C 中的移位运算符(<<、>>)是算术运算符还是逻辑运算符?

    在 C 语言中 移位运算符 lt lt gt gt 算术还是逻辑 左移时 算术移位和逻辑移位没有区别 右移时 移位类型取决于被移位的值的类型 作为那些不熟悉差异的读者的背景知识 逻辑 右移 1 位会将所有位向右移动 并用 0 填充最左边的位
  • 在 Perl 中解析时间戳与毫秒

    假设我有一堆时间戳 如 11 05 2010 16 27 26 003 如何在 Perl 中用毫秒解析它们 本质上 我想比较时间戳以查看它们是在特定时间之前还是之后 我尝试使用 Time Local 但似乎 Time Local 只能解析第
  • 使用与 Trait 函数相同名称的 PHP 类

    我有以下代码作为示例 trait sampletrait function hello echo hello from trait class client use sampletrait function hello echo hello
  • YouTube-Player-iOS-Helper 无法使用 YTPlayerView 类

    我正在尝试实现 youtube ios player helper 在这里找到 https github com youtube youtube ios player helper https github com youtube yout
  • 在android上进行双向数据绑定的正确方法是什么?

    我为 2 路数据绑定做了一个简单的 hello world 并且接缝工作完美 当在 editext 上写入时 textview 自动更新 但是像官方文档一样在网上找到的所有代码都有更多的代码和复杂性 例如https developer an
  • 如何在 Windows 7 64 位上调试 VB6 IIS 应用程序

    我需要能够在 Windows 7 64 位上调试 Visual Basic 6 IIS 应用程序 不仅仅是为了解决一个问题 而是为了持续发展 尝试调试会导致 WebClass 运行时出现错误 发生了未指定的错误 如果我不进行调试而只是访问编
  • 对 Azure Cosmos DB 中的嵌套字段建立索引

    我想在 Azure Cosmos DB 文档中的嵌套字段上创建索引 例如 如果我有以下架构 id 1 nested mode mode1 text nice text 我想在该字段上创建索引nested mode 如何才能做到这一点 Ans
  • 如何在Eclipse控制台打印[简体]汉字?

    我有以下代码 import java io PrintStream import java io UnsupportedEncodingException import java util Locale public final class
  • 点击刷新时,IIS 上出现路由 404 错误

    我没有找到这个问题的解决方案 但我已经尝试了各种解决方案 但没有任何效果 我有一个 React JS 应用程序 当部署在测试服务器上并且您在页面上点击刷新时 我收到 404 错误消息 我尝试过 URL 重写 这有助于导航回主页 但这并不能解
  • 如何使 DateTime 独立于当前文化?

    我尝试将日期时间转换为字符串并返回 但使其适用于所有文化 我基本上有一个文本框 tbDateTime 和一个标签 lbDateTime 该标签告诉用户 软件期望以哪种格式输入 tbDateTime 文本框的输入将用于 MySQL 命令 目前
  • Angular ng 使用不同的“配置文件”构建

    在 Maven Java 中 可以构建具有不同 配置文件 的 Web 应用程序战争 配置文件 指示例如要放入配置文件中的 Web 服务的 URL 因此 测试配置文件 将指示与 生产配置文件 不同的 URL 有没有类似于 ng build 的
  • Swift - 如何在单击时使图像全屏显示,然后在再次单击时使图像变为原始大小? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 对于我正在制作的应用程序 我希望用户能够单击图像以使其在应用程序上全屏显示 然后用户可以单击现在的全屏图像以使其恢复原始大小 这可能吗
  • 我不明白 format() 和 ... (python) 之间有什么区别

    这里是困惑的新手 使用有什么区别 print So you are 0 years old format age AND print So you are age years old 两者都有效 其实差别很大 前者使用字符串format h
  • 汇编中的纯高位乘法?

    为了实现 0 到 1 之间的实数 通常使用 ANSI 浮点数或双精度数 但是 0 到 1 之间的固定精度数字 小数模 1 可以有效地实现为 32 位整数或 16 位字 它们像普通整数 字一样相加 但乘以 错误的方式 这意味着当您乘以 X 倍
  • gem 服务器:如何更新缺少 rdoc 的 gem?

    我很喜欢gem server使用本地 RubyGems 文档索引引导 Web 服务器的命令 我唯一的问题是 有些 gems 没有 rdoc 文件 如何添加缺失的rdoc 所有gem都是主流gem 不是我自己的 通过Bundler安装 导轨2
  • 电子生成器应用程序大小太大

    我发现使用 Electron builder 生成的 MyApp exe 文件有将近 500M 左右 我不确定我做了什么 因为以前 仅对于 ia32 或 x64 它大约是 196M 我也看了这个link https stackoverflo
  • 矢量上的段错误

    我创建了一个结构来保存一些数据 然后声明一个向量来保存该结构 但是当我执行 Push back 时 我遇到了该死的段错误 我不知道为什么 我的结构定义为 typedef struct Group int codigo string name
  • 查找最大值并显示 SQL Server 中不同字段的相应值

    我有一个表 其中包含有关城市的数据 其中包括城市名称 人口和与我的问题无关的其他字段 ID Name Population 1 A 45667 2 B 123456 3 C 3005 4 D 13769 找到最大人口是基本的 但我需要一个结