明凯博客

关注网站技术,一个特立独行的程序员

sql选取每个分组中的第一条数据

sql选取每个分组中的第一条数据

1.创建测试表

1
2
3
4
5
6
CREATE TABLE #Order1
(
OrderName VARCHAR(50),
RequestDate datetime,
OrderCount INT
)

2.插入测试数据

1
2
3
4
5
6
7
INSERT INTO #Order1 VALUES('衣服','2013-06-02',2)
INSERT INTO #Order1 VALUES('衣服','2013-06-03',4)
INSERT INTO #Order1 VALUES('衣服','2013-06-04',5)
 
INSERT INTO #Order1 VALUES('鞋','2013-06-02',3)
INSERT INTO #Order1 VALUES('鞋','2013-06-03',7)
INSERT INTO #Order1 VALUES('鞋','2013-06-04',8)

3.选取每组中时间最近的一条

1
2
3
4
5
6
SELECT * FROM
(
SELECT ROW_NUMBER()OVER(PARTITION BY OrderName ORDER BY RequestDate DESC) AS rownum, OrderCount,OrderName 
FROM #Order1
) T
WHERE T.rownum = 1

, ,

相关文章

1 条评论 “sql选取每个分组中的第一条数据

发表评论

电子邮件地址不会被公开。 必填项已用*标注