`
hedahai119
  • 浏览: 106361 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

取出分组后每组的第一条记录(不用group by)按时间排序

Go 
阅读更多
-- 操作日志表
CREATE TABLE JobLog  -- 操作日志表
(
    JobLogId] int NOT NULL ,       -- 主键
    FunctionId nvarchar(20) NULL , -- 功能Id
    OperateTime datetime NULL      -- 操作时间
) ON PRIMARY
GO
ALTER TABLE JobLog ADD 
CONSTRAINT PK_JobLog PRIMARY KEY CLUSTERED(JobLogId) ON PRIMARY
GO

-- 操作日志表的所有记录
SELECT * FROM JobLog
查询结果:
1    001    2007-11-01
2    001    2007-11-02
3    001    2007-11-03
4    002    2007-11-04
5    002    2007-11-05
6    003    2007-11-06
7    004    2007-11-07
8    004    2007-11-08
9    005    2007-11-09
10  005    2007-11-10

-- 每个功能最后一次操作记录
SELECT * FROM JobLog A
 WHERE JobLogId in
       (SELECT TOP 1 JobLogId FROM JobLog 
         WHERE A.FunctionId = FunctionId ORDER BY OperateTime DESC
       )
查询结果:
3    001    2007-11-03
5    002    2007-11-05
6    003    2007-11-06
8    004    2007-11-08
10  005    2007-11-10
 
分享到:
评论

相关推荐

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

    My SQL group by取同组第一条

    这个查询首先按`AddTime`字段对所有记录进行升序排序,然后对`MemberID`进行分组,返回每个`MemberID`分组的第一条记录(按`AddTime`的升序)。然而,从MySQL 8.0开始,这个查询可能不会按照预期工作,因为它违反了...

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

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

    asp.net面试题

    2. **取有排序查询结果的前10条记录**:正确做法是先`ORDER BY`后`TOP`,例如`SELECT TOP 10 fielda FROM tablea ORDER BY fieldb`。 3. **取没有排序查询结果的第11到20条记录**:在SQL Server中,可以使用`OFFSET...

    超实用sql语句

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    数据库操作语句大全(sql)

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 ...

    经典SQL语句大全

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 add...

    MySql基本查询、连接查询、子查询、正则表达查询讲解

    不加条件,那么就只取每个分组的第一条。 如果想看分组的内容,可以加groub_concat [sql] view plain copy select STU_SEX,group_concat(STU_NAME) from STUDENT group by STU_SEX; 3.2、一般情况下group需与...

    SQL数据库语句大全.docx

    - **说明**: 排序并选择每组中特定条件下的最大值。 **包括所有在TableA中但不在TableB和TableC中的行并消除所有重复行而派生出一个结果表** - **示例**: `SELECT DISTINCT * FROM TableA WHERE NOT EXISTS (SELECT...

    SQL性能优化

    dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的时候99%条记录都进行dy_...

    最全的oracle常用命令大全.txt

    select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status; 8、查看数据库的版本 Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6...

    SQL执行步骤的具体分析

    `HAVING`过滤器作用于虚拟表VT6,它类似`WHERE`但应用于分组后的结果,仅保留满足条件的组,生成虚拟表VT7。 8. **SELECT子句**: 第二次执行`SELECT`操作,从VT7中选择指定的列,生成虚拟表VT8。此时的`SELECT`...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    以前写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 ...

    linux.chm文档

    chown user1:group1 file1 改变一个文件的所有人和群组属性 find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件 chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者...

Global site tag (gtag.js) - Google Analytics