Je souhaite résumer plusieurs tables de ma base de données en obtenant des statistiques sur chaque colonne (min, max, moyen, nombre de valeurs nulles, etc.)
Existe-t-il une commande / outil postgresql pour le faire?
Réponses:
1 pour la réponse № 1Postgresql maintient des statistiques sur toutes les tables. Ils sont rendus visibles via le pg_stats vue.
Il contient au moins certaines des informations que vous recherchez, telles que la proportion de valeurs NULL, ainsi que d'autres informations potentiellement utiles, telles que des histogrammes des valeurs les plus courantes, etc.
Ces statistiques sont gérées par la base de données elle-même, ce qui facilite la planification des requêtes.
Exemple d'utilisation: Obtenir une fraction de valeurs NULL et le nombre de valeurs distinctes dans la table "foo":
ispdb_t1=> select tablename || "." || attname as tablecolumn, null_frac, n_distinct from pg_stats where tablename="foo";
tablecolumn | null_frac | n_distinct
-------------------+-------------+------------
foo.name | 0 | -1
foo.a | 0.000785309 | 4
foo.b | 0.000241633 | 4
foo.id | 0 | -1
foo.d | 0 | 553
(6 rows)