有一个表,其中id是自动编号,s_id 为数字,现在想根据s_id的由大到小的顺序取出前3个不重复的name,并按s_id的由大到小的顺序排列,该如何写语句?
id name s_id1 AAA 21
2 BBB 21
3 CCC 21
4 AAA 23
5 BBB 23
6 CCC 23
7 DDD 25
8 EEE 32
9 CCC 55
10 FFF 11
11 GGG 34
12 HHH 34
13 BBB 34
id name s_id1 AAA 21
2 BBB 21
3 CCC 21
4 AAA 23
5 BBB 23
6 CCC 23
7 DDD 25
8 EEE 32
9 CCC 55
10 FFF 11
11 GGG 34
12 HHH 34
13 BBB 34
Where Not Exists(Select 1 from TableName Where s_id=A.s_id And id<A.id Having Count(*)>2) Order By s_id,id
Where Not Exists (Select 1 from TableName Where name=A.name)
Order By s_id Desc
select top 3 name,max(s_id) mm from table1
group by name order by mm desc
Select Top 3 Name from TEST A
Where Not Exists (Select * from TEST Where Name=A.name And id<>A.id)
Order By s_id Desc
SELECT TOP 3 [NAME],[S_ID] FROM (SELECT [NAME],MAX(S_ID) AS S_ID FROM TABLE1 GROUP BY [NAME]) W ORDER BY S_ID DESC