sql查找表中某个字段值相同,其他字段取最大值的记录
来源:互联网 发布:土木工程词典 知乎 编辑:程序博客网 时间:2024/05/22 09:02
原文:点击打开链接
SELECTa.*FROMuser aWHEREnot EXISTS(select 1 from user where name = a.name and age > a.age)
对user表进行扫描,编号(或姓名)相同情况下,没有比前边年龄大大的数据存在,也就是取相同编号(或姓名)年份最大的一条数据。
论坛看到的一条关于类似语句的分析解释:
select * from tt t where not exists(select 1 from tt where 姓名=t.姓名 and 薪资>t.薪资 )
对于表tt的记录进行扫描,
对于其中任一条记录,查询相同表中相同姓名的记录,查找其中是否存在薪资>当前记录的薪资的记录,如存在,扫描到的记录即不符合条件,
如不存在,即扫描到的记录符合where的条件,将作为查询结果.
考虑最简单的情况
姓名,薪资
chen,1000 --此记录与全部chen记录1000-4000比较,2000以上>1000存在查询结果,此记录不符合where 条件
chen,2000 --此记录与全部chen记录1000-4000比较,3000以上>2000存在查询结果,此记录不符合where 条件
chen,3000 --此记录与全部chen记录1000-4000比较,4000>3000存在查询结果,此记录不符合where 条件
chen,4000 --此记录与全部chen记录1000-4000比较,没有>4000的记录,此记录符合where 条件
最后符合条件的记录为
chen,4000
条件就是查询相同姓名 没有比查询的记录的薪资高的记录
实际结果就是薪资的最大值.
阅读全文
0 0
- sql查找表中某个字段值相同,其他字段取最大值的记录
- sql取某个字段相近某个值的记录
- sql取记录时有几个字段相同其他字段不同,但只取一条记录的写法
- 获取一张表中某个字段最大值的一条记录
- sql查询表中字段值相同的数据记录
- sql查询表中字段值相同的数据记录
- sql查询表中字段值相同的数据记录
- sql 去除相某个字段有相同记录的行,取第一行
- sql删除一个表中除了编号以外其他字段都相同的冗余记录
- 查询出一张表中某个字段具有相同值的记录
- SQL查询不包含没文字,和取某字段相同的最大值的那条记录
- 查一个表中某个字段相同的其他所有用户信息
- SQL取某个字段最大(小)数值及其相应行的其他字段值的句语
- 取某个表某个字段的内容的sql函数
- sql查询同一表格中,不同字段,但是两个字段的值相同的记录行
- 查询表中某一字段值相同的记录
- 数据库查出表中某个字段最大值
- 如何对sql中某个字段里的所有值添加相同的字符
- 如何用一个java程序来判断一个xml文件是否符合一个DTD的要求
- json的解析
- 关于Tomcat运行原理的一些分析
- 讲一讲WiFi快连、SmartConfig、SmartConnect
- python中MySQLdb模块用法实例
- sql查找表中某个字段值相同,其他字段取最大值的记录
- 算法导论 练习题 17.3-6
- opencv3.2安装opencv_contrib
- 线程池控制输出CountDownLatch同步计数器
- phabricator实战使用
- dom parser
- "Your device isn't compatible with this version" 部分设备无法从google play下载
- 去除js数组中的重复元素
- 正则表达式 匹配字母和数字