使用SQLServerWITH子句查询每个类别最新记录
作者:路人不会编程 | 来源:互联网 | 2024-11-26 15:27
本文介绍如何在SQLServer中利用WITH子句和窗口函数ROW_NUMBER()来查询每个类型下的最新数据行。示例包括表结构、数据插入以及最终的查询语句。
在SQL Server中,有时需要从数据库中查询每个类别下的最新记录。这可以通过使用WITH子句结合窗口函数ROW_NUMBER()实现。 ### 表结构及数据示例 假设我们有一个名为COST的表,包含如下字段: - DTIME (datetime): 记录的时间 - TYPE (varchar): 类别 - MONEY (int): 金额 表中的数据如下所示: ```sql DTIME TYPE MONEY 2015-10-14 13:50:35.000 shopping 20 2015-10-21 13:51:24.000 shopping 40 2015-10-06 13:52:34.000 eat 10 2015-10-04 13:53:02.000 eat 60 2015-10-06 13:53:26.000 study 70 2015-10-31 13:53:35.000 study 100 ``` ### 查询每个类别下的最新记录 为了获取每个类别下的最新记录,我们可以使用以下SQL语句: ```sql WITH LatestRecords AS ( SELECT DTIME, TYPE, MONEY, ROW_NUMBER() OVER (PARTITION BY TYPE ORDER BY DTIME DESC) AS RowNum FROM COST ) SELECT DTIME, TYPE, MONEY FROM LatestRecords WHERE RowNum = 1; ``` ### 查询结果 执行上述查询后,将返回每个类别下的最新记录: ```sql DTIME TYPE MONEY 2015-10-06 13:52:34.000 eat 10 2015-10-21 13:51:24.000 shopping 40 2015-10-31 13:53:35.000 study 100 ``` 通过这种方式,我们可以轻松地从数据库中提取每个类别下的最新记录,这对于数据分析和报告生成非常有用。
推荐阅读
定制数据层关键字:数据层,访问,元数据,数据访问模型http://www.gaodaima.com/35448.html定制数据层_sqlserver ...
[详细]
蜡笔小新 2023-10-10 12:26:17
什么是分区表一般情况下,我们建立数据库表时,表数据都存放在一个文件里。但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件 ...
[详细]
蜡笔小新 2023-09-24 13:16:49
在RAC环境中如何管理日志(redologfile)组Tuesday,2004-09-1411:52Eygle htt ...
[详细]
蜡笔小新 2023-09-16 16:22:23
Program.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threadi ...
[详细]
蜡笔小新 2023-09-16 11:02:06
本文主要介绍关于asp.net,visualstudio,sqlserver的知识点,对【asp.net小说网站案例】和【asp.net电商项目】有兴趣的朋友可以看下由【师哥帮忙】投稿的技术文章,希 ...
[详细]
蜡笔小新 2023-10-10 18:20:38
Java连接SqlServer2008数据库首先下载JDBC:下载地址:http:www.microsoft.comzh-cndownloaddetails.aspx?id21599下载 ...
[详细]
蜡笔小新 2023-10-10 13:15:33
第三课视频笔记:联机丛书的使用附加和分离数据库---收缩数据库--------数据库快照 ...
[详细]
蜡笔小新 2023-09-25 06:09:52
在目标队列中对消息进行排队时出现异常。错误:15404,状态:19。CouldnotobtaininformationaboutWindowsNTgroupuserSERVER ...
[详细]
蜡笔小新 2023-09-24 15:36:20
假设我有一张源表customer_account中有一个字段crm_id_content,字段的内容大概为这种模式<r><uid{F7898717-4954-E123 ...
[详细]
蜡笔小新 2023-09-24 15:26:06
sqldouble222.22222222如何转换成字符串222.22222222%convertcast都是保留4位小数。 ...
[详细]
蜡笔小新 2023-09-24 13:44:02
由于项目需要,临时用php访问Sqlserver数据库,于是配置mssql扩展,但是无法访问,按照网上各种dll文件copy都不成功,最后终于发现是php版本问题,我的版本是php5.3 ...
[详细]
蜡笔小新 2023-09-23 18:16:11
转载:http:www.crazycoder.cnDataBaseIndex.html查询速度慢的原因很多,常见如下几种:1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设 ...
[详细]
蜡笔小新 2023-09-23 15:56:06
本文主要介绍关于数据库,sql,sqlserver的知识点,对【数据库——概述】和【数据库到底要怎么做】有兴趣的朋友可以看下由【用编程写诗】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的数据库相 ...
[详细]
蜡笔小新 2023-09-23 10:47:47
Oracle将表t_uaer的字段ID设置为自增:(用序列sequence的方法来实现)----创建表Createtablet_user(Idnumber(6),use ...
[详细]
蜡笔小新 2023-09-17 09:11:21
问题简述:登录MSSQLSERVER的时候,如果输入ip而导致无法登录,可以参考一下步骤,设置完成后即可使用ip登录数据库step1:step2:step3:step4 ...
[详细]
蜡笔小新 2023-09-16 12:57:50