У меня есть три таблицы:Добавить в общей сложности 3 строки для конкретного идентификатора
Студенты
-------------------------------------------------------------
studentId first last gender weight
-------------------------------------------------------------
1 John Doe m 185
2 John Doe2 m 130
3 John Doe3 m 250
ЛИФТЫ
-------------------
liftId name
-------------------
1 Bench Press
2 Power Clean
3 Parallel Squat
4 Deadlift
5 Shoulder Press
StudentLifts
------------------------------------------------
studentLiftId studentId liftId weight
------------------------------------------------
1 1 1 185
2 2 3 130
3 3 1 190
4 1 2 120
5 2 1 155
6 3 2 145
7 1 1 135
8 1 1 205
9 2 3 200
10 1 3 150
11 2 2 110
12 3 3 250
Я хотел бы иметь четыре верхние списки:
Жим
Параллельно Приседания
Мощность Clean
Всего вышеприведенном 3
Я могу успешно захватить верхний список для каждого конкретного лифт, используя следующий запрос:
SELECT s.studentId, s.first, s.last, s.gender, s.weight, l.name, sl.weight
FROM Students s
LEFT JOIN (
SELECT *
FROM StudentLifts
ORDER BY weight DESC
) sl ON sl.studentId = s.studentId
LEFT JOIN Lifts l ON l.liftId = sl.liftId
WHERE l.name = 'Bench Press'
AND s.gender = 'm'
AND s.weight > 170
GROUP BY s.studentId
ORDER BY sl.weight DESC
Тем не менее, я застрял в том, как добавить самую высокую общую сумму каждого лифта для каждого ученика. Как я могу найти самую высокую общую сумму для каждого учащегося в каждом лифте, а затем добавить их, чтобы получить в общей сложности все три лифта?
Редактировать
Результирующий набор, который я искал бы что-то вроде:
-------------------------------------------------
studentId first last weight
-------------------------------------------------
3 John Doe3 585
1 John Doe 475
2 John Doe2 465
я забыл упомянуть, что я бы на самом деле, как два списка, один для студентов выше 170 и один для студентов ниже 170.
Можете ли вы показать нам, как на самом деле будет выглядеть желаемый результат? – Strawberry
Возможно, с более интересными данными о лифте, чем «каждый делает 185», так как это может не показать, что вы действительно хотите – Mikeb