Я хочу сделать такой запрос
SELECT playerId, SUM(distance) as distance, sprint.sprint, SUM(calories) as calories,
SUM(stepsRate) as steps, SUM(jump) as jump, deviceId as I
FROM readings as re
CROSS JOIN (select count(agg.maxSpeed) as sprint from(
select max(r.distance) as maxSpeed,
CASE
WHEN r.distance > 20 THEN @rownr
ELSE @rownr := @rownr + 1
END as flag
from readings as r
CROSS JOIN (SELECT @rownr := 0) AS dummy
**where r.playerId = re.playerId**
group by flag) as agg
where agg.maxSpeed > 20) AS sprint
GROUP BY playerId;
, но проблема в том, что я не могу сделать Whare Statement, где r.playerId = re.playerId Я не могу связаться с playerId
Моя таблица таблиц чтения
Id int(11) AI PK
deviceId varchar(50)
playerId int(11)
heartRate int(11)
distance double
calories double
StepsRate double
jump double
sessionId int(11)
Некоторые примеры данных
Id | DeviceId | PlayerId | HeartRate | distance | calories
21711 AAAAA2 2016 148 38 10
21721 AAAAA2 2016 126 33.5 13
21731 AAAAA2 2016 111 33.5 6
21741 AAAAA2 2016 192 33.5 22
Ожидаемый результат запроса
PlayerId | Distance | Sprint | Calories | Steps | DeviceId
1002 4993 49 6750 10 AAAAA1
2016 2592 49 5775 10 AAAAA2
2017 9994 49 7790 10 AAAAA3
2018 5939 49 5350 10 AAAAA4
2019 4794 49 6259 10 AAAAA5
В CROSS JOIN получен COUNT of Sprint, но яневозможно передать playerId в оператор WHERE в CROSS JOIN