34,576
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE [dbo].[Pub_Test](
[ID] [int] NOT NULL,
[班级] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[学生] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[学号] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[语文分数] [int] NOT NULL,
[数学分数] [int] NOT NULL,
CONSTRAINT [PK_Pub_Test] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT INTO [AVAResourcesPlatform].[dbo].[Pub_Test]
VALUES (1 ,'一班' ,'小一' ,'0001' ,60 ,50)
INSERT INTO [AVAResourcesPlatform].[dbo].[Pub_Test]
VALUES (2 ,'一班' ,'小二' ,'0001' ,70 ,60)
INSERT INTO [AVAResourcesPlatform].[dbo].[Pub_Test]
VALUES (3 ,'二班' ,'小三' ,'0001' ,90 ,70)
INSERT INTO [AVAResourcesPlatform].[dbo].[Pub_Test]
VALUES (4 ,'二班' ,'小四' ,'0001' ,50 ,98)
INSERT INTO [AVAResourcesPlatform].[dbo].[Pub_Test]
VALUES (5 ,'二班' ,'小五' ,'0001' ,75 ,72)
GO
select * from [Pub_Test]
select 班级, MAX(语文分数) 语文分数 from [Pub_Test] Group By 班级
-- 查询出每个班级中语文分数最高的记录
--------------------------------------------
-- 二班 90
-- 一班 70
-----------------------------------------------
-- 但是我要的结果为:
--2 一班 小二 0001 70 60
--3 二班 小三 0001 90 70
--应该怎么写呢?
--谢谢
DROP TABLE [dbo].[Pub_Test]
select *
from pub_test
where 语文分数 in (
select MAX(语文分数) 语文分数
from [Pub_Test]
Group By 班级
)
当一个班有两个同分数且都是最高分时,当然也都是第一名咯,我要接分,分,分!!!!