数据库原始数据如下:数据库名: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, fid
FROM new
GROUP BY fid
ORDER BY update_time DESC SELECT *
FROM new
INNER JOIN user ON user.id = new.user_id
WHERE fid = ? AND update_time = ?

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

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

MySql按字段分组取最大值记录的更多相关文章

  1. MySql按字段分组取最大值记录 [此博文包含图片]

      要求:获得按table1_id分组,并且age最大的记录信息,即2.3.5条     方法一: select * from (select * from table2 order by age d ...

  2. MySQL更新指定分组中最大值记录

    数据表中存储着某个状态字段,当分组中所有数据入库后,需要根据相应的最大值更新状态字段,如表: 现在要将no=11的分组中把最大值记录的status更新为1,可以直接这么写: ; done~

  3. mysql按某一字段分组取最大(小)值所在行的数据

    mysql按某一字段分组取最大(小)值所在行的数据   mysql技巧--按某一字段分组取最大(小)值所在行的数据,这是mysql数据库程序员经常用到的在处理一些报表数据时候可以活用!那么猎微网将总结 ...

  4. SQL Server 按某一字段分组 取 最大 (小)值所在行的数据

    SQL Server 按某一字段分组 取 最大 (小)值所在行的数据 -- 按某一字段分组 取 最大 (小)值所在行的数据 -- (爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23 ...

  5. [sql server、oracle] 分组取最大值最小值常用sql

    sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb(  ...

  6. javascript 从对象数组中 按字段/属性取最大值或最小值

    var array=[ { "index_id": 119, "area_id": "18335623", "name" ...

  7. T-SQL百万记录中分组取最大值方法ROW_NUMBER() OVER()

    SELECT SysUserID, UserID, ROW_NUMBER() OVER(PARTITION BY UserID ORDER BY AddTime DESC) AS nums AND S ...

  8. MYSQL根据分类分组取每组一条数据且按条件能排序的写法

    之前在一个项目的开发中,有遇到要根据分类来分组获取每组一条按某个条件字段排序的数据结果,于是先自己写了一条语句: select * from `表A` GROUP BY `c`; 上面这个语句有可以根 ...

  9. oracle 根据字段分组取第一条数据及rank函数说明

    当前有这样一个需求,根据外键对子表数据进行分组,取每组中的一条数据就行了,如图: 如:COMMANDID = 26的有两条,只取一条数据. sql语句: select * from(select SY ...

随机推荐

  1. Python开发接水果小游戏

    我研发的Python游戏引擎Pylash已经更新到1.4了.如今我们就来使用它完毕一个极其简单的小游戏:接水果. 下面是游戏截图: 游戏操作说明:点击屏幕左右两边或者使用键盘方向键控制人物移动.使人物 ...

  2. jQuery(一)引入

    一.jQuery简介 jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多) 二.安装 2.1.下载 下载地址:http://jq ...

  3. 小程序target与currentTarge区别

        文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论

  4. 深入理解索引系列1:B+树

  5. 各种样式的table 及 代码

    1.模板一 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <tit ...

  6. MySQL优化之——权限管理

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46763767 在mysql数据库中,有mysql_install_db脚本初始化权 ...

  7. JAVA中定义常量的几种方式

    1.最古老的 //未处理 public static final Integer PROCESS_STATUS_UNTREATED = 0; //已接收 public static final Int ...

  8. def函数之另类用法

    #python 27 #xiaodeng def list_opts(): return [ ('name', 'xiaodeng'), ('age', 28), ('), ('where', 'en ...

  9. xml DTD中的ELEMENT和ATTLIST

    是W3C的一个文档类型定义规则文件,是用来让浏览器根据你定义的DTD(文档类型定义)来解释页面代码的. doctype声明指出阅读程序应该用什么规则集来解释文档中的标记.在Web文档的情况下,“阅读程 ...

  10. Drupal的$messages是怎么显示的?

    Drupal的默认主题bartik会在页面顶部显示系统信息,例如警告.状态等.这个过程是如何实现的? 首先,在bartik目录下找到page.tpl.php,这是bartik主题的页面显示模板.其中有 ...