Le funzioni del SQL Server

di Anonimizzato18375 il
4 risposte
Buonasera !
Tra le funzioni del Sql Server non trovo:
1. una che mi moltiplichi i valori lungo una colonna;
2. la radice n-esima.

1. Ad esempio con una query del genere:

SELECT
	IDP,
	TEST,
	SUM(TEST)	OVER(ORDER BY IDP
					ROWS BETWEEN UNBOUNDED PRECEDING
					AND CURRENT ROW) AS SOMMA_PROGRESSIVA
FROM dbo.PROVA10;
GO
ottengo la somma progressiva.
A me serve la moltiplicazione progressiva o Produttoria.

Per entrambi i casi, esiste una funzione ? O bisogna costruirla in qualche modo ?
Cordiali saluti.

4 Risposte

  • La radice n-esima l'ho risolta con questo codice:
    
    SELECT
    	IDP,
    	TEST,
    	ROUND(POWER(TEST,3),4) AS E
    FROM dbo.PROVA10
    WHERE TEST LIKE 5
    
    Rimane la Produttoria. Mi sapete dire qualcosa ?
    Grazie.
  • Se i valori che vuoi moltiplicare sono tutti positivi, puoi usare l'equivalente

    SELECT EXP(SUM(LOG(test))) FROM ...
  • Grazie del suggerimento.
    Con quel codice ottengo direttamente il valore finale della produttoria.
    Io nel campo TEST ho cinque valori (1, 2, 3, 4, 5). Moltiplicandoli tutti ottengo 120, ma a serve vedere la moltiplicazione progressiva, cioè:
    
    ID	TEST	 Produttoria
    1	  1		1
    2	  2		2
    3	  3	 	6
    4	  4	 	24
    5	  5	 	120
    
    Se non esiste una funzione di aggregazione, bisogna crearla
  • Ho risolto con una WINDOWING Function.
    Caso chiuso.
    Saluti.
Devi accedere o registrarti per scrivere nel forum
4 risposte