sql分组取最大记录方法
要想取利用group by 分组后第一条记录我们就需要结合order by 来操作,原是是很利用group by 把所有分组取出来,然后来利用order by 对分组里面的数据进行desc排序取第一条就KO了。
先看看group by 语句的用法
GROUP BY 语句
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
点击可查看源文
代码如下 | 复制代码 |
SELECT column_name, aggregate_function(column_name) |
在SQL的 语句一起使用同样数目的SQL聚合函数提供分组的某些教程表列(第结果数据集方法)。
实例
以下是 test 表,测试sql
代码如下 | 复制代码 |
CREATE TABLE IF NOT EXISTS `test` (
|
实现sql语句
代码如下 | 复制代码 |
SELECT A.* FROM test A, |
这样我们只要取集合的还desc排序的第一条就可以了。
再看个mssql server实例
例如 table1(a,b,c,d)
代码如下 | 复制代码 |
a b c d 4 0 c4 d4 5 1 c5 d5 6 1 c7 d7 |
我要得到的是按a分组,在每个分组中取b值最大的一条记录,就是
代码如下 | 复制代码 |
a b c d 1 3 c3 d3 4 0 c4 d4 5 2 c6 d6 6 4 c8 d8 |
方法一
代码如下 | 复制代码 |
* from table1 where b in (select max(b) from table1 group by a) ; |
方法二
代码如下 | 复制代码 |
select * from table1 a where b=(select max(b) from table1 where a=a.a) |
好了就讲这么多了,希望对大家有用。
推荐阅读
-
SQL中Group分组获取Top N方法实现可首选row_number
-
SQL Server遍历表中记录的2种方法(使用表变量和游标)
-
Sql Server:多行合并成一行,并做分组统计的两个方法
-
SQL Server简单模式下误删除堆表记录恢复方法(绕过页眉校验)
-
SQL重复记录查询的几种方法
-
利用ROW_NUMBER() OVER函数给SQL数据库中每一条记录分配行号的方法
-
SQL Server查询前N条记录的常用方法小结
-
python topN 取最大的N个数或最小的N个数方法
-
Sql_从查询的结果集中分组后取最后有效的数据成新的结果集小记(待优化)
-
sql server获得新记录标识列值的二种方法