2016-05-22 1 views
1

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

Select max(heart_rate) as Max_heart, Count(*) from exercise_logs 
    where heart_rate between (0.5*Max_heart) and (0.9*Max_heart); 

Я новичок в SQL, но я думаю, что это было бы просто с чем-то вроде R. В любом случае, так как мне нужно, чтобы это было сделано в SQL, любые предложения о том, как я могу это сделать?

Мои данные выглядит следующим образом

type   minutes calories heart_rate 
    biking   30  100  110 
    biking   10  30  105 
    dancing   15  200  120 
    dancing   15  165  120 
    tree climbing 30  70  90 
    tree climbing 25  72  80 
    rowing   30  70  90 
    hiking   60  80  85 
+0

Что желаемый результат должен быть? – Rahul

+0

Я подозреваю, что вы делаете это более сложным, чем это должно быть. Можете ли вы более подробно описать свою проблему? – Strawberry

ответ

0

Вы хотите использовать User-Defined Variables. Это должно быть как

declare var1, var2 INT; 

    Select var1 = max(heart_rate), var2 = Count(*) 
    from exercise_logs 
    where heart_rate between (0.5*Max_heart) and (0.9*Max_heart); 

    select var1 + var2 as Data; 
+0

Я не думаю, что он спрашивает, как назначить результат переменной. Я думаю, он хочет найти максимальный сердечный ритм, а затем найти действия, которые приводят к сердечному ритму от 50% до 90% от максимальной скорости. – Alex

0

Попробуйте

-- Finds maximum heart rate from all activities 
SET @Max_heart := (SELECT max(heart_rate) FROM exercise_logs); 

-- Selects activities that generate between 50% and 90% of the maximum heart rate 
Select * 
FROM exercise_logs 
where heart_rate between (0.5* @Max_heart) and (0.9*@Max_heart); 
Смежные вопросы