`

MySQL分组后排序的问题(转)

阅读更多

 

文章出自:http://zhidao.baidu.com/link?url=UTDXhHcfizHWM6tRar48i41_zwqVmF19iFiBhwQzGl7Ct2qlilPAzZlgl9KqFbAMolwvxnrQFh8UHXbQZcAT1q

 

 

假如表里面存放了每个商品不同日期的不同价格

product price   date

1111    10.00   2007-07-01

2222    21.00   2007-07-01

2222    22.00   2007-07-02

1111    11.00   2007-07-02

3333    1.00   2007-07-01

我现在需要对商品分组后选择最后日期的那条记录

结果应该是

2222    22.00   2007-07-02

1111    11.00   2007-07-02

3333    1.00    2007-07-01

 

请问这个SQL怎么写?数据量较大,所以还要以性能优先

 

语句如下:

-- 用分组函数来做,假如你的表名是table_name

select A.*
from table_name A,(select product,max(date) max_date from table_name group by product) B
where A.product=B.product and A.date=B.max_date;

 

 

 

 

 

 

分享到:
评论

相关推荐

    Mysql取分组后的每组第一条数据

    因为在mysql分组是将第一个出现的数据进行展示出。 MySQL会创建临时表的几种情况: 1、UNION查询; 2、用到TEMPTABLE算法或者是UNION查询中的视图; 3、ORDER BY和GROUP BY的子句不一样时; 4、表连接中,ORDER BY...

    MySQL分组排序功能

    由于MYSQL没有提供类似ORACLE中OVER()这样丰富的分析函数. 所以在MYSQL里需要实现这样的功能,我们只能用一些灵活的办法

    MySQL之聚合查询、分组和排序

    附件包含的主要内容为演示MySQL之聚合查询、分组和排序的相关命令和效果。

    05mysql分组函数

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,变量,存储过程,函数,分支结构,循环结构等等

    Mysql利用group by分组排序

    首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。 select id, (@rowno := @rowno + 1) as rank, score, (C.end_ti

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    详解MySQL分组排序求Top N

    主要介绍了详解MySQL分组排序求Top N的相关资料,需要的朋友可以参考下

    mysql获取分组后每组的最大值实例详解

    mysql获取分组后每组的最大值实例详解 1. 测试数据库表如下: create table test ( `id` int not null auto_increment, `name` varchar(20) not null default '', `score` int not null default 0, primary key...

    03查询(mysql入门之排序查询)select

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,变量,存储过程,函数,分支结构,循环结构等等

    MySql分组后随机获取每组一条数据的操作

    思路:先随机排序然后再分组就好了。 1、创建表: CREATE TABLE `xdx_test` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `class` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=...

    2023年,MySQL最新最详细的教程资源 详细讲解了MySQL的各种用法

    MySQL 排序 MySQL 分组 MySQL 连接的使用 MySQL NULL 值处理 MySQL 正则表达式 MySQL 事务 MySQL ALTER命令 MySQL 索引 MySQL 临时表 MySQL 复制表 MySQL 元数据 MySQL 序列使用 MySQL 处理重复数据 MySQL 及 SQL ...

    06mysql分组查询

    这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,变量,存储过程,函数,分支结构,循环结构等等

    分组排序选择需要一条

    sql 排序:row_number() over(partition by sjjl_id order by fksj desc,最优化的情况,里面放的有例子,大家可以参考

    MySQL优化篇:排序分组优化.pdf

    主要包括order by关键字排序优化(无过滤不排序;顺序错,必排序;方向反,必排序;索引的选择;using filesort以及覆盖索引等内容)、group by关键字优化

    MYSQL

    1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL 邮件列表及如何提问或报告错误 2.1 MySQL邮件列表 2.2 提问或报告错误 2.3 怎样报告错误或问题 2.4 在...

    MySQL中文参考手册.chm

    1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL 邮件列表及如何提问或报告错误 2.1 MySQL邮件列表 2.2 提问或报告错误 2.3 怎样报告错误或问题 ...

    MySQL中文参考手册

    + 4.15.2 启动 MySQL 服务器的问题 + 4.15.3 自动启动和停止 MySQL + 4.15.4 选项文件 o 4.16 升级和降级(downgrading)时有什么特别要做的事情吗? + 4.16.1 从一个 3.22 版本升级到 3.23 + 4.16.2 从一个 ...

Global site tag (gtag.js) - Google Analytics