要想取利用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) |
好了就讲这么多了,希望对大家有用。