博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySql按字段分组取最大值记录
阅读量:5364 次
发布时间:2019-06-15

本文共 1094 字,大约阅读时间需要 3 分钟。

数据库原始数据如下:数据库名:tbl_clothers

需求是:按照type分组,并获取个分组中price中的最大值,解决sql如下:

方法一:

select * from (select type, name, price from tbl_clothers order by price desc) as a
  group by a.type;

方法二:

select a.* from tbl_clothers as a where price = (select max(price) from tbl_clothers where a.type=type)

方法三:

select a.* from tbl_clothers as a where not exists (select * from tbl_clothers where type=a.type and price>a.price)# not exists意思是:在tbl_clothers中找不到比a的价格更大的值,也就是a的值应该是最大的价格。

方法四:

select a.* from tbl_clothers as a where exists (select count(*) from tbl_clothers where type=a.type and price>a.price having count(*)=0)

方法五:

select a.* from tbl_clothers a inner join (select type,max(price) maxprice from tbl_clothers group by type) b on a.type=b.type and a.price=b.maxprice #order by a.type;

 方法六:这个是比较直观的

SELECT MAX(update_time) AS update_time, fidFROM newGROUP BY fidORDER BY update_time DESCSELECT *FROM newINNER JOIN user ON user.id = new.user_idWHERE fid = ? AND update_time = ?

建立索引ALERT TABLE ADD INDEX update_fid (fid, updatetime)

 

有些语法可能会由于数据裤版本不同,会有差别。

 

转载于:https://www.cnblogs.com/duhuo/p/4310316.html

你可能感兴趣的文章
洛谷 P1991 无线通讯网
查看>>
mysql asyn 示例
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
Docker 安装MySQL5.7(三)
查看>>
CF1067C Knights 构造
查看>>
CSS: caption-side 属性
查看>>
CSS3中box-sizing的理解
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
代理网站
查看>>
Open multiple excel files in WebBrowser, only the last one gets activated
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>