En général la table des faits comporte un ou plusieurs attributs représentant des faits, que l'on va sommer sur les dimensions lors de l'analyse.
ventes (fk_date, fk_produit, quantite, ca)
SELECT sum(v.quantite)
FROM ventes v JOIN date d
ON fk_date=pk_date
GROUP BY d.week
Dans certains cas, on mesure directement dans la table des faits des événements unitaires. Un fait est donc juste un enregistrement dans la table des faits.
Dans ce cas le table des faits ne contient que des clés étrangères, et aucun fait en tant que tel (c'est l'enregistrement qui est le fait).
Pour analyser une table de faits sans fait, on ne peut pas utiliser sum
(il n'y a rien à sommer), on utilise count
(on analyse le nombre de faits enregistrés).
ventes (fk_date, fk_produit)
SELECT count(*)
FROM ventes v JOIN date d
ON fk_date=pk_date
GROUP BY d.week
Afin de rendre ce cas plus lisible, il est parfois conseillé d'ajouter une colonne qui contient la valeur 1 pour toutes les lignes. On matérialise ainsi le fait par une valeur, même si elle est toujours la même, et il est de nouveau possible de travailler en somme.