2016-05-22 13 views
1

Hier ist der Code, den ich verwende.Wie speichere ich den Maximalwert einer Spalte als Variable und verwende sie dann für Berechnungen in 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); 

: Ich bin mit SQL, aber ich denke, das Anyways mit so etwas wie R. leicht gewesen wäre, da ich diese in SQL, irgendwelche Vorschläge auf getan erhalten müssen, wie dies kann ich tun?

Meine Daten wie folgt aussieht

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

Was ist die gewünschte Ausgabe enthalten sein sollte? – Rahul

+0

Ich vermute, dass du das komplexer machst, als es sein muss. Können Sie Ihr Problem genauer beschreiben? – Strawberry

Antwort

0

Sie wollen User-Defined Variables verwenden. Es sollte sein wie

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

Ich glaube nicht, dass er fragt, wie man Ergebnis einer Variablen zuweisen kann. Ich denke, er möchte eine maximale maximale Herzfrequenz finden und dann Aktivitäten finden, die eine Herzfrequenz zwischen 50% und 90% der Maximalrate ergeben. – Alex

0

Try this

-- 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);