我担心,如果没有公用表表达式和/或窗口函数,并且不需要编写过程,这在MySQL中会变得非常冗长

SELECT t.id, t.val second_largest

-- unpivot your columns into a table

FROM (

SELECT id, col1 val FROM my_table UNION ALL

SELECT id, col2 FROM my_table UNION ALL

SELECT id, col3 FROM my_table UNION ALL

SELECT id, col4 FROM my_table UNION ALL

SELECT id, coln FROM my_table

) t

-- retain only those records, where there exists exactly one record with a

-- column value greater than any other column value with the same id

WHERE 1 = (

SELECT COUNT(*)

-- Here, use unions to be sure that every value appears exactly once

FROM (

SELECT id, col1 val FROM my_table UNION

SELECT id, col2 FROM my_table UNION

SELECT id, col3 FROM my_table UNION

SELECT id, col4 FROM my_table UNION

SELECT id, coln FROM my_table

) u

WHERE t.id = u.id

AND t.val < u.val

)

这是检查它的SQLFiddle(感谢bluefeet对于模式的单挑!).即使最大列值出现多次,上述解决方案也会在每一行中找到第二大列值.

mysql取第二大_mysql – SQL:从一行列中获取第二大值相关推荐

  1. cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  2. mysql 取第一条_MySQL索引底层(一)索引底层原理

    微信公众号:Java患者 专注Java领域技术分享 MySQL索引底层原理 局部性与页 在操作系统中,我们执行一个指令去磁盘取数据,那么他会从磁盘取出4KB数据,这个4KB就是一个局部单位,而这4KB ...

  3. MySQL数据库锁构建_MySQL数据库InnoDB存储引擎中的锁机制

    00 – 基本概念 当并发事务同时访问一个资源的时候,有可能导致数据不一致.因此需要一种致机制来将访问顺序化. 锁就是其中的一种机制.我们用商场的试衣间来做一个比喻.试衣间供许多消费者使用.因此可能有 ...

  4. mysql命令书写顺序_MySQL SQL语句书写顺序和执行顺序

    SQL语句书写顺序和执行顺序 (7) SELECT (8) DISTINCT (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) HAVING (9 ...

  5. mysql 取年月日 语句_MySQL学习从这里出发!

    MySQL数据库 开发学习中,想满足一些需求,无疑需要经常与数据打交道,例如,我们在使用IO的一些技术的时候,常常需要将一些数据存储到外部文件,可能大家会问,我们初学的时候常常会简单的保存一些数据到 ...

  6. mysql 42000 报错_MySQL SQL Error: 1064, SQLState: 42000 错误

    你不小心使用了下面的关键字,那么就会报这个错误: SQL Error: 1064, SQLState: 42000 MySQL 关键字和保留字 下面这些是目前 MySQL 所拥有的关键字和保留字,在使 ...

  7. mysql 嵌套查询性能_mysql SQL优化之嵌套查询-遁地龙卷风

    (-1) 写在前面 这篇随笔的数据使用的是http://blog.csdn.net/friendan/article/details/8072668#comments里的,里面有一些常见的select ...

  8. mysql 生成日历视图_mysql sql语句生成日历表

    mysql sql语句生成日历表  (主要用于按月,按天group by分组统计时,有些日期没有记录,需要补0) 从自定义的开始时间,生成1万条记录 CREATE TABLE if not exist ...

  9. mysql 语句 简书_MySQL SQL语句

    Mysql数据库:端口号3306,超级用户 root unsigned 正值 修改提示符:--prompt 提示符 常见定义 参数:\D 完整的日期 \d当前数据库 \h服务器名称 \u 当前用户 数 ...

  10. mysql查询显示技巧_MYSQL SQL高级查询技巧

    1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...

最新文章

  1. 关于ping telnet
  2. shell笔记之sed编辑器的基础用法(上)
  3. Android开发究竟该如何学习,重难点整理
  4. window7共享xp或者2003的文件设置
  5. 定价相关的主要用户出口
  6. GDCM:gdcm::VL 的测试程序
  7. 求到所有房子距离和最小的新房子
  8. jspstudy启动mysql失败_mysql启动失败的一个解决方法
  9. 目前能体验到的虚拟主播虚拟人脸形象有哪些?
  10. 导出Excel支持锁定表头
  11. 苹果logo_苹果 ARM Mac 发布会独特标志 Logo 亮相
  12. matlab拉丁方,基于拉丁方的流密码算法设计与仿真
  13. 40个常见的HTML5 面试问题及答案
  14. 如何在linux中备份文件
  15. php 5.3.29 nts,为什么PHP 5.3不在支持ISAPI,为什么还要分NTS和TS版本?
  16. 文思海辉php外派腾讯,文思海辉(外派腾讯)
  17. 微信小程序 删除服务器图片,微信小程序实现图片上传放大预览删除代码
  18. 线性代数笔记-线性空间和矩阵复习
  19. IDEA 本地调试spark程序 Exception in thread main java.lang.NoSuchMethodError: scala.collection.immutable.
  20. springboot 整合kafka 实现生产,消费数据

热门文章

  1. Thread中断的理解
  2. nginx 配置支持URL HTML5 History 模式 与 设置代理
  3. Ubuntu 16.04安装Markdown编辑器MarkMyWords
  4. UIAlertController中TextField的用法
  5. Scrapy入门程序点评
  6. 成为Oracle 10g DBA之路
  7. 随机森林的基分类器可否由决策树替换为线性分类器或者K-NN?
  8. java range注解_最全的Java Spring注解
  9. JavaJDBC异常记录:关于sql上能够正常执行的sql语句,在java中执行了但是返回结果不一致问题
  10. 启动虚拟机连接教程,连接教学,一级初级开发虚拟机中的简单指令