Principale utente con più risposte
Valori massimi raggruppati per data

Domanda
-
Ciao a tutti,
Ho il seguente problema:
In una tabella ho i seguenti campi ID(pr. K), Data(gg,MM,yy,hh,mm,ss), Temperatura(float).
Una riga per ogni ora del giorno.
Vorrei estrarre per ogni giorno il valore massimo ( ma anche minimo) di temperatura.
Non saprei da che parte iniziare... potete darmi un consiglio?
Grazie per la paziente risposta.
Risposte
-
Ciao,
premesso che il tipo di dato utilizzato per il campo data sia di tipo DataOra e che la versione di Sql Server sia uguale o maggiore alla 2008, prendi spunto da questo esempio:
USE TEMPDB GO --Creo la tabella CREATE TABLE dbo.Tabella (Id Int Identity, Data Datetime, Temperatura Float ) GO -- Inserisco qualche valore INSERT INTO dbo.Tabella (Data,Temperatura) VALUES ('20151205 06:30:00',5.15), ('20151205 12:30:00',10.30), ('20151205 18:45:00',7.20), ('20151206 06:30:00',6.30), ('20151206 12:30:00',12.10), ('20151206 18:45:00',8.40) -- Select Finale SELECT CONVERT(Date,Data) AS Giorno, Min(Temperatura) AS MinDiTemperatura, Max(Temperatura) AS MaxDiTemperatura FROM dbo.Tabella GROUP BY CONVERT(Date,Data) --Pulizia DROP TABLE dbo.Tabella /* Risultato Giorno MinDiTemperatura MaxDiTemperatura ---------- ---------------------- ---------------------- 2015-12-05 5,15 10,3 2015-12-06 6,3 12,1 (Righe interessate: 2) */
Ciao
Giorgio Rancati
- Modificato Giorgio RancatiModerator domenica 6 dicembre 2015 20:44
- Contrassegnato come risposta gino palmia domenica 6 dicembre 2015 22:30
Tutte le risposte
-
Ciao,
premesso che il tipo di dato utilizzato per il campo data sia di tipo DataOra e che la versione di Sql Server sia uguale o maggiore alla 2008, prendi spunto da questo esempio:
USE TEMPDB GO --Creo la tabella CREATE TABLE dbo.Tabella (Id Int Identity, Data Datetime, Temperatura Float ) GO -- Inserisco qualche valore INSERT INTO dbo.Tabella (Data,Temperatura) VALUES ('20151205 06:30:00',5.15), ('20151205 12:30:00',10.30), ('20151205 18:45:00',7.20), ('20151206 06:30:00',6.30), ('20151206 12:30:00',12.10), ('20151206 18:45:00',8.40) -- Select Finale SELECT CONVERT(Date,Data) AS Giorno, Min(Temperatura) AS MinDiTemperatura, Max(Temperatura) AS MaxDiTemperatura FROM dbo.Tabella GROUP BY CONVERT(Date,Data) --Pulizia DROP TABLE dbo.Tabella /* Risultato Giorno MinDiTemperatura MaxDiTemperatura ---------- ---------------------- ---------------------- 2015-12-05 5,15 10,3 2015-12-06 6,3 12,1 (Righe interessate: 2) */
Ciao
Giorgio Rancati
- Modificato Giorgio RancatiModerator domenica 6 dicembre 2015 20:44
- Contrassegnato come risposta gino palmia domenica 6 dicembre 2015 22:30
-