add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE test (StudID INT,
Name VARCHAR(8),
Year INT,
SubjectID INT,
SubjectName VARCHAR(32),
MTFlag INT);
INSERT INTO test
SELECT 51280, 'ALOYSIUS' , 2019 , 42 , 'CHINESE LANGUAGE' , 1 UNION ALL
SELECT 51280, 'ALOYSIUS' , 2020 , 70 , 'ENGLISH LANGUAGE' , 0 UNION ALL
SELECT 51280, 'ALOYSIUS' , 2020 , 95 , 'CHINESE B' , 1 UNION ALL
SELECT 51280, 'ALOYSIUS' , 2020 , 75 , 'MATHEMATICS' , 0 UNION ALL
SELECT 51290, 'AMIL' , 2020 , 70 , 'ENGLISH LANGUAGE' , 0 UNION ALL
SELECT 51290, 'AMIL' , 2020 , 85 , 'MALAY LANGUAGE' , 1 UNION ALL
SELECT 51290, 'AMIL' , 2020 , 75 , 'MATHEMATICS' , 0 UNION ALL
SELECT 51290, 'AMIL' , 2019 , 59 , 'MALAY LANGUAGE' , 1;
SELECT DISTINCT
StudID,
Name,
MAX(Year) OVER (PARTITION BY StudID) Year,
FIRST_VALUE(SubjectID) OVER (PARTITION BY StudID ORDER BY Year DESC) SubjectID,
FIRST_VALUE(SubjectName) OVER (PARTITION BY StudID ORDER BY Year DESC) SubjectName,
1 MTFlag
FROM test
WHERE MTFlag;
StudID Name Year SubjectID SubjectName MTFlag
51280 ALOYSIUS 2020 95 CHINESE B 1
51290 AMIL 2020 85 MALAY LANGUAGE 1
SELECT t1.*
FROM test t1
NATURAL JOIN ( SELECT t2.StudID, MAX(t2.Year) Year
FROM test t2
WHERE t2.MTFlag
GROUP BY 1 ) t3
WHERE t1.MTFlag
StudID Name Year SubjectID SubjectName MTFlag
51280 ALOYSIUS 2020 95 CHINESE B 1
51290 AMIL 2020 85 MALAY LANGUAGE 1