102 messaggi dal 26 agosto 2009
Buongiorno, se io ho 30 record in una tabella posso calcolare
la media di un Campo:
Select AVG(Prezzo) from Venduto
e fin qua tutto ok ed Idem per la Varianza.

Ma se io ho un Record con 30 Colonne, c'è una funzione veloce per fare la media del tipo:
Select AVG(Prezzo1,Prezzo2,Prezzo3,....Prezzo30) from Venduto Where ID = '1' ??
Prego,non rispondetemi Select SUM(Prezzo1+Prezzo2+...Prezzo30)/30 from Venduto Where ID = '1'
Chiedo solo se c'è una funzione che lavori anche in Orizzontale e non solo in Verticale!
Modificato da claudiomarchetti il 08 marzo 2011 09.50 -
Modificato da claudiomarchetti il 08 marzo 2011 09.50 -
salve,
claudiomarchetti wrote:
Buongiorno, se io ho 30 record in una tabella posso calcolare la media di un Campo:
Select AVG(Prezzo) from Venduto
e fin qua tutto ok ed Idem per la Varianza.
Ma se io ho un Record con 30 Colonne, c'è una funzione veloce per fare la media del tipo:
Select AVG(Prezzo1,Prezzo2,Prezzo3,....Prezzo30) from Venduto Where ID = '1' ??
Prego,non rispondetemi Select SUM(Prezzo1+Prezzo2+...Prezzo30)/30 from Venduto Where ID = '1'
Chiedo solo se c'è una funzione che lavori anche in Orizzontale e non solo in Verticale!

non indichi che dbms tu stia utilizzando, e sinceramente non se se, come nel caso di Postgres che gestisce gli array, esistano estensioni proprietare di funzioni di aggregazione simili... per mia conoscenza, comunque, no, non esistono..
salut

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de
non so se la cosa ti complica la vita, ma potresti eventualmente "ruotare" le colonne in righe, manualmente ovvero ad esempio utilizzando funzionalita' quali "UNPIVOT" presente in SQL Server... ad ogni modo, e specialmente nel caso di raggruppamento manuale come tu hai gia' indicato
[SUM(Prezzo1+Prezzo2+...Prezzo30)/30 ], devi fare attenzione ai NULL in quanto SUM(10 + NULL) /2 non sarebbe corretto (e non per la somma algebrica di 10+NULL che ovviamente darebbe NULL causa le impostazioni ANSI standard "concat null yelds null") in quanto dovrebbe essere SUM(10 + 0) /1 [visto che 1 solo predicato e' valorizzato]...
saluti

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
http://www.hotelsole.com - http://www.hotelsolericcione.de

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC