mysql按某一字段分组取最大(小)值所在行的数据
mysql按某一字段分组取最大(小)值所在行的数据
mysql技巧--按某一字段分组取最大(小)值所在行的数据,这是mysql数据库程序员经常用到的在处理一些报表数据时候可以活用!那么猎微网将总结几种mysql查询最大值 mysql查询最小值的方法!
mysql表图如下
具体Php 连接mysql数据库php代码我就不写 下面看select怎么查询
一、按name分组取val最大的值所在行的数据。
--方法1:
select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name
--方法2:
select a.* from tb a where not exists(select 1 from tb where name = a.name and val > a.val)
--方法3:
select a.* from tb a,(select name,max(val) val from tb group by name) b where a.name = b.name and a.val = b.val order by a.name
--方法4:
select a.* from tb a inner join (select name , max(val) val from tb group by name) b on a.name = b.name and a.val = b.val order by a.name
--方法5
select a.* from tb a where 1 > (select count(*) from tb where name = a.name and val > a.val ) order by a.name
/*
name val memo
---------- ----------- --------------------
a 3 a3:a的第三个值
b 5 b5b5b5b5b5
*/
二、按name分组取val最小的值所在行的数据。
--方法1:
select a.* from tb a where val = (select min(val) from tb where name = a.name) order by a.name
--方法2:
select a.* from tb a where not exists(select 1 from tb where name = a.name and val < a.val)
--方法3:
select a.* from tb a,(select name,min(val) val from tb group by name) b where a.name = b.name and a.val = b.val order by a.name
--方法4:
select a.* from tb a inner join (select name , min(val) val from tb group by name) b on a.name = b.name and a.val = b.val order by a.name
--方法5
select a.* from tb a where 1 > (select count(*) from tb where name = a.name and val < a.val) order by a.name
/*
name val memo
---------- ----------- --------------------
a 1 a1--a的第一个值
b 1 b1--b的第一个值
*/
这种分组方法好像效率不是很高,我用了10000条记录,5个分组实验一下,要70s的查询时间。但对一般可以满足需求的
mysql按某一字段分组取最大(小)值所在行的数据相关推荐
- 【mysql技巧】按某一字段分组取最大(小)值所在行的数据
mysql技巧--按某一字段分组取最大(小)值所在行的数据,这是mysql数据库程序员经常用到的在处理一些报表数据时候可以活用!那么猎微网将总结几种mysql查询最大值 mysql查询最小值的方法! ...
- SQL按字段分组取最大(小)值记录(重复记录)
SQL Server 按某一字段分组 取 最大 (小)值所在行的数据 -- 按某一字段分组 取 最大 (小)值所在行的数据 -- (爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23 ...
- Java中对查出的数据计数_基础算法7:从数据库某个字段中取出现次数最多的几条数据形成“热门xxx”...
在这里,我们需要查出所有的"出发城市"和"到达城市",并对每个城市进行计数根据其出现次数来取出几个出现次数最多的城市为热门城市 注:将多个字段的数据合并在一起并 ...
- PHP+MySql获取自动增长字段的新添加记录ID值
PHP+MySql获取新添加记录的ID值 1.假设字段名称为recordID 2.字段属性须设为:auto_increment 3.添加数据后使用 $newID = mysql_insert_id() ...
- MAC系统利用charles抓取微信小程序和手机APP数据包(http和https数据包)
本文中使用的是mac上的抓包工具charles进行抓包,手机是华为荣耀8 下载并安装Charles for Mac Charles for Mac(HTTP信息抓包工具) V4.2.5 苹果电脑版 要 ...
- MySql按字段分组取最大值记录
要求:获得按table1_id分组,并且age最大的记录信息,即2.3.5条 方法一: select * from (select * from table2 order by age desc) a ...
- MySql按字段分组取最大值记录 [此博文包含图片]
要求:获得按table1_id分组,并且age最大的记录信息,即2.3.5条 方法一: select * from (select * from table2 order by age desc) a ...
- MYSQL学习:GROUP BY分组取最新的一条记录
日常开发当中,经常会遇到查询分组数据中最新的一条记录,比如统计当前系统每个人的最新登录记录.外卖系统统计所有买家最新的一次订单记录.图书管理系统借阅者最新借阅书籍的记录等等.今天给大家介绍一下如何实现 ...
- Simulink取最大(小)值方法总结
目录 1.取多个数中最大一个 2.取连续输入信号中最大一个 3.取多个数中最大一个并返回Index 1.取多个数中最大一个 第一个,比较同时输入的数据中最大的值,这个比较简单,可以比较并行输入的数据, ...
最新文章
- 统计学习方法笔记 -- 概论
- 单链表的插入和删除_从0开始的编程之梦——数据结构之单链表的基本运算
- 使用OpenMP实现多线程,不仅是用在循环处理上
- centos6.5 安装mysql8,centos6上安装mysql8.0版本
- 强大的德国教育如何锻造孩子的健全人格
- win环境下安装python之matplotlib经历
- python列表导出_python list格式数据excel导出方法
- vb6.0 生成exe被简称是木马_使用MSF渗透框架生成PHP木马并实现控制远程服务器
- CITRIX:为什么说“桌面虚拟化”我们最强?
- CentOS6下Xen 4.1的安装(编译linux3.0内核)
- Inside ASP.NET 2.0-即时编译系统
- 小米 26.5 亿北京拿地;华为印度合作 5G;特朗普 diss 谷歌亚马逊 | 极客头条
- np.isin判断数组元素在另一数组中是否存在
- 黑客小C小游戏(DEVC++)时不时会更新
- stackoverflow 瞎眼 模式,你中招了么?
- 杨强教授漫谈《西部世界》、生成式对抗网络及迁移学习
- python download
- 基于Matlab的MIMO通信系统仿真_Simulink实现
- Java学习笔记14(接口+工厂模式)
- wscript.shell
热门文章
- ElementUI中的el-table怎样实现每一列显示的是控件并能动态实现双向数据绑定
- ElementUI项目中怎样引用Jquery
- 关于能否命令Scrum团队的对话
- python shell怎么换行_python shell:去除fasta文件的换行符
- 二进制在计算机电路中得到广泛的应用,模拟电子和数字电子技术的区别及应用...
- 神策 2021 数据驱动大会,科特勒、桑文锋等发出营销未来之强音
- 今天,我要用“数”,向你表白。
- Linux shell 对于文件的删除,复制,修改文件名等操作
- BZOJ - 3578: GTY的人类基因组计划2
- 《趣题学算法》—第0章0.3节算法的伪代码描述