mysql - 根据 MySQL 中的三列从一列中挑选并仅显示最高值
问题描述
嘿!
我到处搜索,但找不到正确的方法来选择同一主题内每个学生的最高结果。所以 studentnr 是表中学生的 ID,emnekode 是主题代码,karakter 是结果,A 为最高,F 为最低。
关于如何使它工作的任何建议?我会很感激。
这是到目前为止的代码,输出如下:
SELECT Eksamensresultat.*, Emnenavn, Studiepoeng
FROM Eksamensresultat, Emne
WHERE Eksamensresultat.Emnekode = Emne.Emnekode
ORDER BY RIGHT (Eksamensresultat.Emnekode, 4) ASC;
我希望输出是这样的(结果 B 除外,因为该学生的 A 更高):
这是两张表:
CREATE TABLE Emne
(
Emnekode CHAR(8) NOT NULL,
Emnenavn CHAR(40) NOT NULL,
Studiepoeng DECIMAL(3, 1),
CONSTRAINT EmnekodePK PRIMARY KEY(Emnekode)
);
CREATE TABLE Eksamen
(
Emnekode CHAR(8) NOT NULL,
Dato DATE NOT NULL,
Romnr CHAR(4) NOT NULL,
CONSTRAINT EksamenPK PRIMARY KEY(Dato,Emnekode),
CONSTRAINT EksamenEmneFK FOREIGN KEY(Emnekode) REFERENCES Emne(Emnekode),
CONSTRAINT EksamenRomFK FOREIGN KEY(Romnr) REFERENCES Rom(Romnr)
);
数据:
INSERT INTO Emne (Emnekode, Emnenavn, Studiepoeng) VALUES
("PRG1000", "Grunnleggende programmering 1", 7.5),
("PRG1100", "Grunnleggende programmering 2", 7.5),
("WEB1100", "Webutvikling og HCI", 7.5),
("SYS1000", "Systemutvikling", 7.5),
("ORL1100", "Organisering", 7.5);
INSERT INTO Eksamensresultat(Karakter,Studentnr,Emnekode,Dato) VALUES
("A","240202","PRG1000","20210505"),
("C","240202","PRG1100","20210506"),
("B","240202","SYS1000","20210507"),
("A","225087","PRG1100","20210506"),
(NULL,"225087","SYS1000","20210507"),
(NULL,"240225","SYS1000","20210507"),
(NULL,"884642","SYS1000","20210507"),
("C","139959","PRG1000","20210505"),
("B","240202","PRG1000","20210606");
解决方案
如果我理解正确,你想要ROW_NUMBER()
,所以你可以为每个学生/考试选择一行,其中较高的Karakter
:
SELECT er.*
FROM (SELECT er.*, e.Emnenavn, e.Studiepoeng,
ROW_NUMBER() OVER (PARTITION BY er.Studentnr, er.Emnekode ORDER BY er.Karakter DESC) as seqnum
FROM Eksamensresultat er JOIN
Emne e
ON er.Emnekode = e.Emnekode
) er
WHERE er = 1
ORDER BY RIGHT(Emnekode, 4) ASC;
推荐阅读
- javascript - 在 JavaScript 中旋转矩形数组
- amazon-web-services - aws / terraform Iam - 内联
- amazon-web-services - 单源多接收器 v/s 平面图
- html - 禁用单击 Light Gallery 中的“.lg-img-wrap”类
- google-data-studio - 如何在 Data Studio 中求和唯一值?
- stream - 强制流;子流和重用工作区,没有文件可见
- mailchimp - 发送新消息 MAILCHIMP,返回空
- sql - SQL 参数提示
- c# - 如何使用 ShopifySharp 验证 Shopify Private App webhook
- xml - 这个错误怎么可能?内部 MSXML2.DOMDocument30 上的“完成此操作所需的数据尚不可用”