• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)

    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数据源的详细步骤
    上一篇:数据库触发器DB2和SqlServer有哪些区别
    下一篇:sqlserver四舍五入使用round函数及cast和convert函数
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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