par
Augure » 13 juil. 2005, 22:39
Je suppose que tu connais la liste de toutes tes colonnes
1/ Pour le taux par colonne
Code : Tout sélectionner
select
( 1-(count(*)-count(col1))/count(*) ) * 100 ) AS 'Tx_pertinence_col1'
, ( 1-(count(*)-count(col2))/count(*) ) * 100 ) AS 'Tx_pertinence_col2'
, ( 1-(count(*)-count(col3))/count(*) ) * 100 ) AS 'Tx_pertinence_col3'
, ( 1-(count(*)-count(col4))/count(*) ) * 100 ) AS 'Tx_pertinence_col4'
from
MaTable
count(*) => nombre total de lignes
count(col1) => nombre total de lignes ayant une valeur différente de NULL dans la colonne col1
Donc
count(*)-count(col1) => Nombre de ligne ayant la valeur NULL dans col1
count(*)-count(col1) / count(*) => Ratio de ligne ayant la valeur NULL dans col1
Notre unvivers étant dans ce cas binaire et égale à 1
1 - ( count(*)-count(col1) / count(*) ) => ratio de ligne non NULL
Et puis *100 pour transformer Ration en %
2/ Si tu veux qu'un seul tx pour toute ta table
Code : Tout sélectionner
select
(
( 1-(count(*)-count(col1))/count(*) ) * 100 )
+ ( 1-(count(*)-count(col2))/count(*) ) * 100 )
+ ( 1-(count(*)-count(col3))/count(*) ) * 100 )
+ ( 1-(count(*)-count(col4))/count(*) ) * 100 )
)
/ 4
from
MaTable