Mam pomiary z pół roku dla 3 miejsc (M1,M2,M3), czy istnieje techniczna możliwość aby wyciągnąć z nich miesiąc w którym była najwyższa średnia temperatura (który miesiąc był najcieplejszy) ? Proszę o rady i wskazówki:) Poniżej screen struktury tabelki:
Wyliczenie średniej z określonego czasu
- Rejestracja: dni
- Ostatnio: dni
- Postów: 488
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
SELECT YEAR(data),MONTH(data),AVG(id) as srednia FROM Tabela GROUP BY YEAR(data),MONTH(data) ORDER BY srednia DESC;
Pierwszy wiersz jest tym co chcesz uzyskać.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 488
I o to właśnie chodziło:) Na screenie poniżej widac który miesiąc był najcieplejszy, a potem wyraźna tendencja spadkowa. Dzięki za pomoc!
Edit: @Vardamir Mam jeszcze jedno pytanie.Jak robie:
SELECT MONTH(DATA),AVG(temp) AS srednia FROM tabelaWHERE miejsce = 'M1'
dostaje wartość środkową, natomiast jak pobrać miesiąc z najwyższą średnią?Opisałem problem na screenie:
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
Nie do końca rozumiem o co Ci chodzi. Nie dostaniesz bo nie grupujesz i nie sortujesz. To co otrzymujesz jest średnia spośród wszystkich danych dla miejsca M1.
SELECT MONTH(DATA),AVG(id) AS srednia FROM Tabela GROUP BY MONTH(DATA) ORDER BY srednia DESC;
- Rejestracja: dni
- Ostatnio: dni
- Postów: 488
Vardamir napisał(a):
Nie do końca rozumiem o co Ci chodzi. Nie dostaniesz bo nie grupujesz i nie sortujesz. To co otrzymujesz jest średnia spośród wszystkich danych dla miejsca M1.
SELECT MONTH(DATA),AVG(id) AS srednia FROM Tabela GROUP BY MONTH(DATA) ORDER BY srednia DESC;
Zgadza się, tylko ja bym chciał otrzymać tylko tę największą wartość.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
To tylko dodajemy LIMIT
SELECT AVG(id) AS srednia FROM Tabela GROUP BY YEAR(DATA),MONTH(DATA) ORDER BY srednia DESC LIMIT 1;
- Rejestracja: dni
- Ostatnio: dni
- Postów: 488
No właśnie "LIMIT" - tego mi brakowało:)