`
foolraty
  • 浏览: 400122 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
文章分类
社区版块
存档分类
最新评论

分组记录第一条(转)

 
阅读更多

1 --建立测试环境   
CREATE   TABLE   table1(a   VARCHAR(10),b   VARCHAR(10),c   VARCHAR(10));   

--插入数据   
INSERT   INTO table1 VALUES('2004','12','storea');

INSERT   INTO   table1 VALUES('2005','07','storea');   

INSERT   INTO   table1 VALUES('2004','11','storeb'); 

INSERT   INTO   table1 VALUES('2005','06','storeb');  
  
COMMIT;

2 取分组记录的第一条

解法一

SELECT   a.*   FROM   table1   a   INNER   JOIN   (   
SELECT   MAX(a   +   b)TIME   FROM   table1     
GROUP   BY   c   )   b   
ON   a.a   +   a.b   =   b.TIME

解法二

SELECT * FROM scott.table1 a WHERE NOT EXISTS
   (SELECT 1   FROM scott.table1 b WHERE a.a=b.a AND TO_NUMBER(a.b)<TO_NUMBER(b.b));

解法三

SELECT * FROM (SELECT t.*, RANK() 
        OVER (PARTITION BY t.a ORDER BY t.b DESC) AS drank
FROM table1 t) a WHERE drank=1

引申

SELECT t.*,SUM(b) OVER (PARTITION BY t.a) AS aaa,
   SUM(b) OVER () AS bbb
FROM table1 t
ORDER BY t.a,t.b

 

 

------

SELECT d.department_id , e.last_name, e.salary, RANK() 
        OVER (PARTITION BY e.department_id ORDER BY e.salary) AS drank
FROM employees e, departments d
WHERE e.department_id = d.department_id
   AND d.department_id IN ('60', '90');

http://www.cnblogs.com/ball-head/archive/2010/01/20/1652822.html

分享到:
评论

相关推荐

    MongoDB聚合分组取第一条记录的案例与实现方法

    然后,对于每个分组,执行第二次 `forEach` 循环,从原始 `mt_resources_access_log` 集合中找出对应的记录,依据 `createTime` 降序排序,并只选取第一条记录,最后将这条记录插入到新的集合 `mt_resources_access_...

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    SQL语句分组获取记录的第一条数据的方法

    假设我们想找出每个城市的第一个员工,即按照City分组,并按EmployeeID排序后的第一条记录。 要实现这个目标,我们可以使用SQL的窗口函数`ROW_NUMBER()`。窗口函数允许我们在结果集上执行计算,不仅限于当前行,...

    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 ...

    Oracle左连接返回多条记录中一条记录的查询语句

    Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录

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

    这是因为`GROUP BY`语句会先对数据进行分组,然后在每个组内应用`ORDER BY`,但结果只会返回每个组的第一个出现的记录,而不是根据排序后的第一条记录。 解决这个问题的一种方法是通过创建一个已排序的临时表,然后...

    chaosirgit#mymd#Laravel-分组获取最新记录1

    前言今天项目中需要根据分组查询最新记录的业务逻辑,想要使用 Eloquent 查询出来,做个记录。实现表内容原生 SQL 为:select * from (se

    多行相同只显示第一行(分组显示).sql

    SQL查询结果部分字段信息重复时,去除重复信息,达到数据分组的效果,类似于EXCEL透视表,对数据库初学者还是有一定的帮助

    SQL 每组前N条记录

    打个比方你要查询每月排名前十的那些记录,或者每月销售前十的车辆。

    Python在groupby分组后提取指定位置记录方法

    第一种方法是使用apply函数,这种方法适用于对分组对象中的每个分组应用某种操作。例如,如果我们想要获取每个用户组的第二次行为时间,可以使用以下代码: ```python action.groupby('userid')['actionTime'].apply...

    Oracle实现对查询结果每N条再次分组博客所用数据库

    通过这个查询,你可以获取每组的第一条记录,或者根据需要修改WHERE子句来选择其他组的记录。 描述中的链接指向了一个具体的博客文章,虽然具体内容没有给出,但可以推测这篇文章可能详细讲解了如何在Oracle数据库...

    如何在水晶报表中分组排序记录源程序实例,C#.net源代码编写,

    1. **创建数据源连接**:在水晶报表中,第一步是建立到数据源的连接。这可能是一个数据库(如SQL Server、Oracle等)、XML文件或任何其他数据提供者。在C#.NET中,我们可以使用`ReportDocument`对象的`SetDataSource...

    Oracle中分组后拼接分组字符串[文].pdf

    第一部分是最内层的 SQL,用于按 `NO` 和 `VALUE` 排序,并列出行号: ```sql select a.No, a.Value, a.Name, row_number() over(order by a.No, a.Value desc) rnFirst from Test a; ``` 这部分的结果如下: | ...

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

    在MySQL数据库中,有时我们需要对数据进行分组处理,并从每个分组中随机选取一条记录。这在统计分析或者抽样调查等场景中非常常见。本文将详细介绍如何在MySQL中实现这一操作,以及一些关于随机选取数据的优化方法。...

    第十一章连接查询和分组查询.zip

    1. GROUP BY语句:根据一个或多个列对结果集进行分组,例如,我们可以按部门分组员工,然后计算每个部门的平均薪资。 2. 聚合函数:配合GROUP BY使用,对每个分组执行特定的计算。例如,COUNT()计算每个组的数量,...

    Java分组、分页源码

    // 是否为第一页 @SuppressWarnings("unused") private boolean isLastPage;// 是否为最后一页 @SuppressWarnings("unused") private boolean hasPreviousPage;// 是否有前一页 @SuppressWarnings("unused") ...

    hibernate criteria 分组 排序 关联

    // 设置起始位置为第51条记录 criteria.setMaxResult(50); // 设置返回记录的最大数量为50 List&lt;User&gt; users = criteria.list(); ``` ### 三、聚合函数(Aggregation Functions) 除了基本的查询外,Hibernate还...

    为数据项设计分组.rar

    在数据分析和数据库设计中,"为数据项设计分组"是一项关键任务,它涉及到如何有效地组织和管理大量的信息。分组数据项是将具有相似属性或特征的数据集合在一起,以便进行更高效的数据处理、分析和可视化。这个过程...

Global site tag (gtag.js) - Google Analytics