J'ai essayé de simplifier pour poser cette question. J'espère que cela sera compréhensible. Fondamentalement, j'ai une table de faits avec une dimension de temps, une autre dimension, et une dimension hiérarchique. Pour les besoins de la question, supposons que la dimension hiérarchique soit le code postal et l'état. L'autre dimension est juste descriptive. Appelons-le «client» Supposons qu'il y a 50 clients.sélectionnez toutes les valeurs d'une dimension pour laquelle il existe des faits dans toutes les autres dimensions
Je dois trouver l'ensemble des états pour lesquels il y a au moins un code postal dans lequel TOUS les clients ont au moins une ligne de faits pour chaque jour dans la dimension temporelle. Si un code postal n'a que 49 clients, je m'en fous. Si même un des 50 clients n'a pas de valeur même pour 1 jour dans un code postal, je m'en fous. Enfin, j'ai aussi besoin de savoir quels codes postaux qualifient l'état pour la sélection. Notez qu'il n'est pas obligatoire que chaque code postal ait un ensemble de données complet - seulement au moins un code postal.
Cela ne me dérange pas de faire plusieurs requêtes et de faire un peu de traitement côté client. C'est un ensemble de données qui doit seulement être généré une fois par jour et peut être mis en cache. Je ne vois même pas une manière particulièrement propre de le faire avec des requêtes multiples à court d'itération de force brute, et il y a beaucoup de 'codes postaux' dans l'ensemble de données (pas réellement les codes postaux, mais le sont environ 100.000 entrées dans le niveau inférieur de la hiérarchie et plusieurs centaines au plus haut niveau, si zipcode-> Etat est une analogie raisonnable)
quelle base de données est-ce? – Unreason
postgresql 8.3.x – ideasculptor