求一个分组,最大值满足条件,取记录的SQL查询(MYSQL)
表结构
CREATE TABLE `transfer_order_detail` (
`tdId` int(9) unsigned NOT NULL AUTO_INCREMENT,
`barCode` varchar(9) NOT NULL,
`toTime` datetime DEFAULT NULL,
PRIMARY KEY (`tdId`)
)...
例子数据:
+-----------+-----------+---------------------+
| tdId | barCode | toTime |
+-----------+-----------+---------------------+
| 000000001 | R00100001 | 2016-04-01 15:02:35 |
| 000000002 | R00100002 | 2016-04-01 15:02:35 |
| 000000003 | R00100003 | 2016-04-01 15:02:35 |
| 000000008 | R00100001 | 2016-04-01 15:05:39 |
| 000000009 | R00100002 | 2016-04-01 15:05:39 |
| 000000010 | R00100003 | 2016-04-01 15:05:39 |
| 000000014 | R00100001 | 2016-04-03 16:49:43 |
| 000000015 | R00100002 | 2016-04-03 16:49:43 |
+-----------+-----------+---------------------+
要求以barCode分组查出每组中toTime最大的记录小于指定日期的记录.
例:小于2016-04-04 16:49:43
+-----------+-----------+---------------------+
| tdId | barCode | toTime |
+-----------+-----------+---------------------+
| 000000010 | R00100003 | 2016-04-01 15:05:39 |
| 000000014 | R00100001 | 2016-04-03 16:49:43 |
| 000000015 | R00100002 | 2016-04-03 16:49:43 |
+-----------+-----------+---------------------+
小于2016-04-01 16:49:43
+-----------+-----------+---------------------+
| tdId | barCode | toTime |
+-----------+-----------+---------------------+
| 000000010 | R00100003 | 2016-04-01 15:05:39 |
+-----------+-----------+---------------------+
CREATE TABLE `transfer_order_detail` (
`tdId` int(9) unsigned NOT NULL AUTO_INCREMENT,
`barCode` varchar(9) NOT NULL,
`toTime` datetime DEFAULT NULL,
PRIMARY KEY (`tdId`)
)...
例子数据:
+-----------+-----------+---------------------+
| tdId | barCode | toTime |
+-----------+-----------+---------------------+
| 000000001 | R00100001 | 2016-04-01 15:02:35 |
| 000000002 | R00100002 | 2016-04-01 15:02:35 |
| 000000003 | R00100003 | 2016-04-01 15:02:35 |
| 000000008 | R00100001 | 2016-04-01 15:05:39 |
| 000000009 | R00100002 | 2016-04-01 15:05:39 |
| 000000010 | R00100003 | 2016-04-01 15:05:39 |
| 000000014 | R00100001 | 2016-04-03 16:49:43 |
| 000000015 | R00100002 | 2016-04-03 16:49:43 |
+-----------+-----------+---------------------+
要求以barCode分组查出每组中toTime最大的记录小于指定日期的记录.
例:小于2016-04-04 16:49:43
+-----------+-----------+---------------------+
| tdId | barCode | toTime |
+-----------+-----------+---------------------+
| 000000010 | R00100003 | 2016-04-01 15:05:39 |
| 000000014 | R00100001 | 2016-04-03 16:49:43 |
| 000000015 | R00100002 | 2016-04-03 16:49:43 |
+-----------+-----------+---------------------+
小于2016-04-01 16:49:43
+-----------+-----------+---------------------+
| tdId | barCode | toTime |
+-----------+-----------+---------------------+
| 000000010 | R00100003 | 2016-04-01 15:05:39 |
+-----------+-----------+---------------------+
...全文
相关推荐
MySql实现分组取n条最大记录.txt
MySql实现分组取n条最大记录,还在为分组取最大困扰么?
mysql使用GROUP BY分组实现取前N条记录的方法
主要介绍了mysql使用GROUP BY分组实现取前N条记录的方法,结合实例形式较为详细的分析了mysql中GROUP BY分组的相关使用技巧,需要的朋友可以参考下
mysql获取分组后每组的最大值实例详解
主要介绍了 mysql获取分组后每组的最大值实例详解的相关资料,需要的朋友可以参考下
Mysql取分组后的每组第一条数据
Mysql取分组后的每组第一条数据 gruop by 分组后 进行 order by mysql会按照 先分组后排序的形式进行输出 并不能做到每组中的第一条数据取出。 我的思路是 : 先将要查询的数据表转换成已经排序的临时表 在进行 分组操作 。 因为在mysql分组是将第一个出现的数据进行展示出。 MySQL会创建临时表的几种情况: 1、UNION查询; 2、用到TEMPTABLE算法或者是UNION查询中的视图; 3、ORDER BY和GROUP BY的子句不一样时; 4、表连接中,ORDER BY的列不是驱动表中的;(指定了联接条件时,满足查询条件的记录行数少的表为[驱动表],未指定联接
mysql分组取每组前几条记录(排名) 附group by与order by的研究
mysql分组取每组前几条记录(排名) 附group by与order by的研究,需要的朋友可以参考下


