MIN Werte abfragen ?

andyyyy

Neuer Benutzer
Beiträge
3
Hallo Leute,

habe eine DB "temp" mit den Spalten "timestamp" und "taussen". Alle 2 Minuten wird ein Wert eingetragen. Nun Würde ich gerne eine Abfrage starten die mir für ein KalenderJahr jeweil den MIN Wert eines Tages ausliest.

Wie ist das möglich ??

Lg, Andyyyy
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.846
Hallo Leute,

habe eine DB "temp" mit den Spalten "timestamp" und "taussen". Alle 2 Minuten wird ein Wert eingetragen. Nun Würde ich gerne eine Abfrage starten die mir für ein KalenderJahr jeweil den MIN Wert eines Tages ausliest.

Wie ist das möglich ??

Lg, Andyyyy


Du wandelst den Timestamp in ein DATE um und fragst nach dem min() - Wert je DATE. In PostgreSQL so:

Code:
test=*# select * from minwerte ;
         ts          | value
---------------------+-------
 2013-01-14 10:00:00 |    10
 2013-01-14 11:00:00 |    12
 2013-01-14 12:00:00 |     0
 2013-01-13 11:00:00 |    11
 2013-01-13 21:00:00 |    12
 2013-01-13 22:00:00 |    13
(6 rows)

test=*# select ts::date, min(value) from minwerte group by ts::date;
     ts     | min
------------+-----
 2013-01-14 |   0
 2013-01-13 |  11
(2 rows)

Sollte ähnlich in MySQL gehen.

Andreas
 

andyyyy

Neuer Benutzer
Beiträge
3
Hallo Andreas,
danke für deine Antwort
Leider bin ich nicht sehr fit in MYSQL, deshalb brauche ich die genaue Syntax

lg, Andyyyy
 

akretschmer

Datenbank-Guru
Beiträge
9.846
Hallo Andreas,
danke für deine Antwort
Leider bin ich nicht sehr fit in MYSQL, deshalb brauche ich die genaue Syntax

lg, Andyyyy

Ich bin, um ehrlich zu sein, in MySQL auch nicht sonderlich fit... kann vielleicht jemand anders jetzt übernehmen?

Oder: du schaust mal selber via Google nach "mysql timestamp to date", da lernst gleich was dazu ;-)

Andreas
 

Tommi

Datenbank-Guru
Beiträge
290
Hallo,

vielleicht funktioniert das ja so in etwa wie beim SQL Server:
(habe versucht die MySQL-Syntax ranzuziehen, weiß aber nicht, ob das so vollkommen korrekt ist):

Code:
SELECT YEAR(timestamp) as Jahr,
DATEFORMAT( MIN(timestamp) ,'%d.%m.%Y') as Erster_Tag
FROM tabelle_temp
GROUP BY YEAR(timestamp)

Viele Grüße,
Tommi
 
Werbung:

andyyyy

Neuer Benutzer
Beiträge
3
Code:
SELECT DATE(timestamp) AS date, MIN(tprimaer) AS tprimaermin, MAX(tprimaer) AS tprimaermaxg FROM vitotemp GROUP BY date ORDER BY date DESC LIMIT 365

Brachte mir den Erfolg, danke.

lg, Andyyyy
 
Oben