Conteggio valori in una tabella

mercoledì 05 gennaio 2011 - 18.21

ma_di Profilo | Junior Member

Ciao.
Ho una tabella Misure, i cui 7 campi sono tutti integer.
La tabella contiene circa 400.000 record, ed i valori sono compresi tra 0 e 100.000.
Esiste una qualche funzione ( SQL 2005 ) con la quale posso contare quante volte esiste la misura 25478 in tutta la tabella senza scandirla colonna per colonna e sommando le volte che lo trovo?
Grazie.

alx_81 Profilo | Guru

>Ciao.
Ciao

>Ho una tabella Misure, i cui 7 campi sono tutti integer.
>La tabella contiene circa 400.000 record, ed i valori sono compresi tra 0 e 100.000.
>Esiste una qualche funzione ( SQL 2005 ) con la quale posso contare
>quante volte esiste la misura 25478 in tutta la tabella senza
>scandirla colonna per colonna e sommando le volte che lo trovo?
Direi di no, puoi inventarti qualcosa tipo una concatenazione dei 7 campi su di una stringa csv (campo calcolato) in cui vai a fare una CHARINDEX su quel valore.. Ma diventa prestazionalmente svantaggiosa.
Se devi cercare su più campi, anche una serie di or nella condizione potrebbe essere insufficiente al tuo scopo. Puoi fare 7 query e sommare di volta in volta le count in una stored procedure, ma anche qui dovresti fare altrettanti indici per rendere buone le prestazioni di ogni query.. Sul momento non mi viene nulla, di sicuro cercherei di evitare tablescan sostituendo con un approccio ad index con le 7 query. Secondo me è la più prestante.. Di metodi terribili per ricavare quello che ti serve ce ne sono anche altri

>Grazie.
di nulla!

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

ma_di Profilo | Junior Member

Grazie Ale... avevo già optato per le 7 query in una stored con somma del count... ma pensavo ci fosse qualcosa di meglio dentro SQL.
Ciao.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5