主页 > 知识库 > SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)

SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)

热门标签:地图标注跑线下市场 疫情时期电话机器人 濮阳清丰400开头的电话申请 地图标注可以编辑地名吗 乐昌电话机器人 台湾外呼系统软件 南京怎么申请400这种电话 真3地图标注 南通智能外呼系统怎么样

Sqlserver 获取每组中的第一条记录

在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面、功能下面,从数据库的术语来说,就是查找出每组中的一条数据。下面我们要实现的就是在sqlserver中实现从每组中取出第一条数据。

例子

我们要从上面获得的有效数据为:

对应的sql语句如下所示:

select * from t1 t where id = (select top 1 id from t1 where grp = t.grp order by createtime desc )

下面给大家介绍oracle查询取出每组中的第一条记录

oracle查询:取出每组中的第一条记录

按type字段分组,code排序,取出每组中的第一条记录

 方法一:

select type,min(code) from group_info 
group by type;

注意:select 后面的列要在group by 子句中,或是用聚合函数包含,否则会有语法错误。

方法二:

SELECT * FROM(
SELECT z.type , z.code ,ROW_NUMBER()
OVER(PARTITION BY z.type ORDER BY z.code) AS code_id
FROM group_info z
)
WHERE code_id =1;

这里涉及到的over()是oracle的分析函数

参考sql reference文档:

Analytic functions compute an aggregate value based on a group of rows. They differ from aggregate functions in that they return multiple rows for each group.
Analytic functions are the last set of operations performed in a query except for the final ORDER  BY clause. All joins and all WHERE , GROUP  BY , and HAVING clauses are completed before the analytic functions are processed. Therefore, analytic functions can appear only in the select list or ORDER  BY clause.

语法结构:

analytic_function ([ arguments ]) OVER
 (analytic_clause)

其中analytic_clause结构包括:

[ query_partition_clause ]
[ order_by_clause [ windowing_clause ] ]

也就是:函数名( [ 参数 ] ) over( [ 分区子句 ]  [ 排序子句 [ 滑动窗口子句 ] ])

这里PARTITION BY 引导的分区子句类似于聚组函数中的group by,排序子句可看成是select语句中的order by.

mysql 中只获取1条数据

SELECT * FROM 表 LIMIT 0, 10

LIMIT 接受一个或两个数字参数。

参数必须是一个整数常量。

如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,

第二个参数指定返回记录行的最大数目。

初始记录行的偏移量是 0(而不是 1)

主意:limit 用于 having 之后

自己的示例:

select count(1),tpc_equipment_code from tb_parts_consume GROUP BY tpc_equipment_code ORDER BY count(1) DESC LIMIT 1;
您可能感兴趣的文章:
  • ADO.NET 连接数据库字符串小结(Oracle、SqlServer、Access、ODBC)
  • c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)
  • sqlserver、Mysql、Oracle三种数据库的优缺点总结
  • sqlserver实现oracle的sequence方法
  • 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
  • oracle,mysql,SqlServer三种数据库的分页查询的实例
  • oracle连接ODBC sqlserver数据源的详细步骤

标签:河北 马鞍山 福建 阿里 陕西 南京 通辽 广安

巨人网络通讯声明:本文标题《SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)》,本文关键词  SQL,获取,第,一条,记录,的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)》相关的同类信息!
  • 本页收集关于SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)的相关信息资讯供网民参考!
  • 推荐文章