文章出自: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相较于其他数据库(如Oracle)存在一定的局限性...
### MySQL之聚合查询、分组和排序 #### 聚合查询、分组与排序概述 聚合查询、分组和排序是关系型数据库系统中重要的数据处理方式之一,尤其是在MySQL这样的流行数据库管理系统中更是如此。这些操作可以帮助用户从...
这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,变量,存储过程,函数,分支结构,循环结构等等
为了解决这个问题,MySQL 4.1之后引入了单路排序,这种算法一次磁盘扫描就可以获取所有需要的列,减少了I/O操作,但可能会因为排序空间不足而导致性能问题。因此,在实际优化中,还需考虑sort_buffer的大小,以确保...
首先先按某个字段进行order by,然后把有顺序的表进行分组,这样每组的成员都是有顺序的,而mysql默认取得分组的第一行。从而得到每组的最值。 select id, (@rowno := @rowno + 1) as rank, score, (C.end_ti
MySQL分组排序求Top N是数据库查询中一种常见的需求,特别是在数据分析、报表生成或数据挖掘等场景中。本文将深入探讨这一主题,帮助你理解如何在MySQL中有效地实现这一功能。 首先,我们要明白分组(GROUP BY)和...
这是因为`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 ...
2. 将随机排序后的数据按班级分组: ```sql GROUP BY a.class ``` 组合起来,完整的SQL查询语句如下: ```sql SELECT * FROM ( SELECT * FROM xdx_test ORDER BY RAND() ) a GROUP BY a.class ``` 执行这个...
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...
这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,变量,存储过程,函数,分支结构,循环结构等等
在MySQL中实现分组并获取每组中的特定数量的最大记录是一项常见的需求,尤其是在处理大量数据时。例如,在上述示例中,我们希望基于`resid`进行分组,并且对于每个组,我们要找出前两条具有最高`pscore`和次高的`...
这是我自己学习mysql时的学习笔记,每一个知识点都是自己动手写的,涵盖了mysql中的几乎全部的基础知识点,查询,子查询,分组,排序,常用函数,多表连接,视图,变量,存储过程,函数,分支结构,循环结构等等
sql 排序:row_number() over(partition by sjjl_id order by fksj desc,最优化的情况,里面放的有例子,大家可以参考
MySQL是世界上最流行的关系型数据库管理系统之一,其...因此,无论你是数据库管理员、数据分析师还是软件开发人员,深入理解和熟练运用MySQL的排序窗口函数和聚合窗口函数都将极大地提高你的工作效率和解决问题的能力。
标题“分组并排序取前N”涉及到数据库查询中的一个重要概念,这通常指的是在SQL查询中使用`GROUP BY`、`ORDER BY`以及`LIMIT`子句来对数据进行分组、排序,并提取出每组中排名靠前的N条记录。在数据库管理中,这种...
MySQL 行转列、列转行、行列汇总、合并显示 MySQL 行转列是一种常用的数据处理操作,用于将同一列下的不同内容的几行数据转换成几列显示。例如,我们有一个成绩表 tb_score,其中包含 userid、subject 和 score 三...