A列 B列 C列 1001 AA 2012-01-02
1001 BB 2012-02-05
1002 CC 2012-02-30
1003 DD 2012-02-15
1005 DD 2012-04-03
实现取A列唯一 C列最早的时间 改怎么写SQL
A列 B列 C列 1001 BB 2012-02-05
1002 CC 2012-02-30
1003 DD 2012-02-15
1005 DD 2012-04-03
主要说的是一个意思,我一共有4w条数据,谢谢啦
1001 BB 2012-02-05
1002 CC 2012-02-30
1003 DD 2012-02-15
1005 DD 2012-04-03
实现取A列唯一 C列最早的时间 改怎么写SQL
A列 B列 C列 1001 BB 2012-02-05
1002 CC 2012-02-30
1003 DD 2012-02-15
1005 DD 2012-04-03
主要说的是一个意思,我一共有4w条数据,谢谢啦
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([A列] INT,[B列] VARCHAR(2),[C列] VARCHAR(10))
INSERT [tb]
SELECT 1001,'AA','2012-01-02' UNION ALL
SELECT 1001,'BB','2012-02-05' UNION ALL
SELECT 1002,'CC','2012-02-30' UNION ALL
SELECT 1003,'DD','2012-02-15' UNION ALL
SELECT 1005,'DD','2012-04-03'
--------------开始查询--------------------------
--1
SELECT * FROM [tb] AS t WHERE NOT EXISTS(SELECT 1 FROM tb WHERE [A列]=t.[A列] AND [C列]>t.[C列])
--2
SELECT * FROM [tb] AS t WHERE [C列]=(SELECT MAX([C列]) FROM tb WHERE [A列]=t.[A列] ) ----------------结果----------------------------
/*
A列 B列 C列
----------- ---- ----------
1001 BB 2012-02-05
1002 CC 2012-02-30
1003 DD 2012-02-15
1005 DD 2012-04-03(4 行受影响)
*/