mysql — сравнения SQL или PHP кодирования для анализа данных в табло

Скриншот базы данных

Моя цель с этими данными состоит в том, чтобы иметь возможность рассчитывать различные изменения веса, используя ID пользователя, а затем упорядочивать их по величине наибольшего выигрыша или наибольшего убытка на основе столбца веса.

Я очень не уверен, как создать вычисляемые столбцы, которые сравнивают две строки в SQL.

Однако я уверен, что в php я бы использовал почти в три раза больше кода, чтобы достичь той же цели с математическими операторами, что было бы неразумно, если в базе данных хранятся сотни пользовательских данных.

Я не слишком уверен, с чего начать с SQL, если есть решение для него.

Любая помощь будет принята с благодарностью.

-1

Решение

Что-то вроде…

SELECT w.userID,
(select w1.weight
from bodycomp w1
where w1.userID = w.userID
order by testDate
limit 1) as startWeight,
(select w2.weight
from bodycomp w2
where w2.userID = w.userID
order by testDate desc
limit 1) as endWeight
from bodycomp w
group by w.userID, startWeight, endWeight
order by startWeight - endWeight desc

Вам нужно будет проверить имена столбцов / таблиц, но я выбрал простейшую логику для каждого человека, получить первый и последний вес и упорядочить по разнице.

Изменить: обновлено имя таблицы в bodycomp

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]