CROSS JOIN в SQL (MySQL) - PullRequest
       1

CROSS JOIN в SQL (MySQL)

0 голосов
/ 28 мая 2018

Я хочу сделать такой запрос

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...