Вы не должны были размещать текст изображения просто отлично. В mysql 5.x нет оконных функций.
Функция агрегации для A, B ,, C D, которую вы должны проверить , необходимы, если максимум 2 или более B имеют.
SELECT
t1.`Beam_Num`, MAX(`A`), MAX(`B`), MAX(`C`), MAX(`D`)
FROM
table1 t1
INNER JOIN
(SELECT
MAX(B) maxb, Beam_Num
FROM
table1
GROUP BY Beam_Num) t2 ON t1.Beam_Num = t2.Beam_Num
AND t1.B = t2.maxb
GROUP BY t1.Beam_Num;
Схема (MySQL v5.7)
CREATE TABLE table1
(`Beam_Num` int, `A` NUMERIC, `B` NUMERIC, `C` NUMERIC, `D` numeric)
;
INSERT INTO table1
(`Beam_Num`, `A`, `B`, `C`, `D`)
VALUES
(10, 4760.0, 491190.0, 223.0, 0.482),
(10, 4760.0, 528769.0, 205.0, 0.444),
(1000, 1941.0, 143560.0, -56.0, 0.2),
(1000, 1941.0, 113815.0, -19.0, 0.15),
(1001, 2695.0, 115663.0, 95.0, 0.56),
(1003, 2250.0, 473762.0, 96.0, 0.555),
(1003, 2250.0, 474130.0, 185.0, 0.555),
(1005, 11861.0, 457673.0, -1056.0, 0.333),
(1008, 948.0, 20471.0, 77.0, 0.5),
(1008, 948.0, 102978.0, 92.0, 0.375),
(1009, 3308.0, 250528.0, 261.0, 0.715)
;
Запрос № 1
SELECT
t1.`Beam_Num`, MAX(`A`), MAX(`B`), MAX(`C`), MAX(`D`)
FROm
table1 t1
INNER JOIN
(SELECT MAX(B) maxb,Beam_Num FROM table1 GROUP BY Beam_Num) t2
ON t1.Beam_Num =
t2.Beam_Num AND t1.B = t2.maxb
GROUP BY t1.Beam_Num;
| Beam_Num | MAX(`A`) | MAX(`B`) | MAX(`C`) | MAX(`D`) |
| -------- | -------- | -------- | -------- | -------- |
| 10 | 4760 | 528769 | 205 | 0 |
| 1000 | 1941 | 143560 | -56 | 0 |
| 1001 | 2695 | 115663 | 95 | 1 |
| 1003 | 2250 | 474130 | 185 | 1 |
| 1005 | 11861 | 457673 | -1056 | 0 |
| 1008 | 948 | 102978 | 92 | 0 |
| 1009 | 3308 | 250528 | 261 | 1 |
Показать на БД Fiddle