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

MSSQL分组取后每一组的最新一条记录

 
阅读更多

数据库中二张表,用户表和奖金记录表,奖金记录表中一个用户有多条信息,有一个生效时间,现在要查询:

奖金生效时间在三天前,每个用户取最新一条奖金记录,且用户末锁定

以前用的方法是直接写在C#代码中的:

for(所有末锁定用户)

 查询奖金记录表 top 1 where uid=??? order by 生效时间 desc

 if(上面查询的记录生效时间在三天前)

  输出

 

今天花了大部分时间研究了一下,终于找到一条SQL语句就可以把结果查出来的方法:

那个row_number函数在MSSQL2008以上才会有!!!

分享到:
评论

相关推荐

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

    GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY分组取前N条记录实现方法。 这是测试表(也不知道怎么想的,当时表名直接敲了个aa,汗~~~~): 结果: 方法一: 代码如下:SELECT a.id,a.SName,a.ClsNo...

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

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

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

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

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

    MySql实现分组取n条最大记录.txt

    在MySQL中实现分组并获取每组中的特定数量的最大记录是一项常见的需求,尤其是在处理大量数据时。例如,在上述示例中,我们希望基于`resid`进行分组,并且对于每个组,我们要找出前两条具有最高`pscore`和次高的`...

    mysql获取分组后每组的最大值实例详解

    在MySQL中,获取分组后每组的最大值是一项常见的数据分析任务,这通常涉及...这不仅能确保每个分组只返回一条记录,而且返回的是该分组内分数最高的记录。在实际应用中,要根据数据库的特性和需求选择合适的查询方式。

    MySQL 查询重复内容只显示一条

    3. **只显示一条重复内容**:若要保留重复数据中的某一条,可以选择其中的一个特定记录,比如按ID排序后的第一条或者最后一条。以下是一种方法,保留`id`最小的重复记录: ```sql SELECT t1.* FROM ( SELECT ...

    关于MYSQL中每个用户取1条记录的三种写法(group by xxx)

    在MySQL中,有时候我们需要从一个表中为每个用户获取一条记录,这通常涉及到对数据进行分组并选择每个组中的特定记录。以下是对三种不同方法的详细解释,这些方法可以帮助你在MySQL中实现这一目标。 **1. 先排序后...

    获取MySQL的表中每个userid最后一条记录的方法

    总结来说,通过`GROUP BY`,`GROUP_CONCAT`和`SUBSTRING_INDEX`的组合,我们可以有效地在MySQL中获取每个`userid`的最后一条记录。这种技巧在日志分析、活动追踪或其他需要获取最新状态的场景中非常实用。了解并掌握...

    Mysql利用group by分组排序

    MySQL的group by与Oracle有所不同,查询得字段可以不用写聚合函数,查询结果取得是每一组的第一行记录。 利用上面的特点,可以利用mysql实现一种独特的排序; 首先先按某个字段进行order by,然后把有顺序的表进行...

    MySQL获取所有分类的前N条记录

    在MySQL数据库中,获取每个分类的前N条记录是一个常见的查询需求,特别是在处理如文章、商品、用户等分组信息时。以下将详细介绍如何通过SQL语句实现这一功能,并给出三个示例。 首先,我们需要理解基本的SQL语法,...

    My SQL group by取同组第一条

    在MySQL 5.6中,你可以使用一个子查询来排序并获取每个分组的第一条记录,如下所示: ```sql SELECT SwipeID, MemberID, AddTime FROM (SELECT * FROM front_membercardswipe fmcs ORDER BY fmcs.AddTime ASC) a ...

    Mysql查询最近一条记录的sql语句(优化篇)

    首先,对数据进行排序,然后按用户ID分组,返回每个组的第一条记录: ```sql SELECT * FROM (SELECT * FROM a WHERE create_time ) t GROUP BY user_id; ``` 这种方法虽然减少了不必要的排序,但仍然需要进行两次...

    mysql获取group by总记录行数的方法

    在MySQL数据库中,当执行`GROUP BY`语句时,通常是为了对数据进行分组并进行聚合计算,如计算每个组的总数、平均值等。然而,标准的`GROUP BY`查询并不直接提供每个组的行数,而是返回每个组的一行数据。如果需要...

    MYSQL每隔10分钟进行分组统计的实现方法

    例如,如果有一个时间戳字段`time_str`记录了每条记录的产生时间,我们可以通过以下SQL语句按照每10分钟为一个时间单位进行统计: ```sql SELECT ROUND(UNIX_TIMESTAMP(time_str)/(10*60)) AS time_key, COUNT(*)...

    分组并排序取前N

    标题“分组并排序取前N”涉及到数据库查询中的一个重要概念,这通常指的是在SQL查询中使用`GROUP BY`、`ORDER BY`以及`LIMIT`子句来对数据进行分组、排序,并提取出每组中排名靠前的N条记录。在数据库管理中,这种...

    mysql去重查询的三种方法

    这样,每个分组的第一条记录(即行号为1的记录)将是最近登录的记录。 #### 2. MySQL 8.0以下版本的类ROW_NUMBER()方法 在MySQL 8.0以下的版本,我们需要使用变量模拟ROW_NUMBER()的功能。以下是一个示例: ```...

Global site tag (gtag.js) - Google Analytics