Mis en ligne le 11/05/2005 - Publié en Juin 2004
Le plein de conseils...
Produit agrégé personnalisé
SQL Server 2000 ne prend pas en charge le développement
de nouvelles fonctions d’agrégation. Il permet uniquement
d’utiliser les fonctions prédéfinies (par ex., SUM, MIN, MAX,
AVG, COUNT). Si vous souhaitez fournir une agrégation personnalisée,
telle que le produit agrégé des éléments d’un
groupe, vous devez recourir à des astuces de programmation
afin d’aboutir à une solution. Pour voir un exemple de
ce type de technique non conventionnelle,
commencez par exécuter le code du listing 9
afin de créer et de remplir la table T1. Vous devez
fournir un produit agrégé des valeurs
contenues dans la colonne value pour chaque
groupe figurant dans la colonne groupid. La
figure 1 montre le résultat souhaité.
Fréquemment, vous pouvez trouver de l’aide
par le biais d’une solution T-SQL s’appuyant
sur des fonctions mathématiques. Dans notre
exemple, vous cherchez un moyen d’utiliser
les fonctions T-SQL permettant de produire
l’équivalent d’une fonction non fournie par ce langage.
L’équation suivante, qui s’appuie sur les logarithmes, constitue
la clé :
LOGn(value1 * value2 * * valueN) = LOGn(value1) + LOGn(value2) + + LOGn(valueN)
L’expression T-SQL SUM(LOG 10(value)) est équivalente
au membre droit de l’égalité ci-dessus. Par conséquent,
pour calculer le produit des éléments value, vous devez
porter 10 à la puissance du membre droit de l’égalité :
POWER(10., SUM(LOG10(value))).
A ce stade, le problème est pratiquement résolu. Le dernier
obstacle réside dans le fait que la fonction LOG n’accepte
pas de zéro ou de valeur négative en tant qu’argument.
Pour les zéros, vous pouvez utiliser une expression
CASE retournant une valeur zéro si le groupe comporte au
moins une valeur zéro. Concernant les valeurs négatives,
vous pouvez calculer la fonction LOG avec la valeur absolue
en entrée et multiplier le résultat par -1 en présence d’un
nombre impaire de valeurs négatives. Le listing 10 présente
la solution complète.
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
- Stockage autonome, Evolutivité & Gestion intelligente, Pure Storage offre de nouvelles perspectives aux entreprises
- Databricks lève 1 milliard de dollars !
- L’utilisation des données pour survivre !
- Intelligence Artificielle : DeepKube sécurise en profondeur les données des entreprises
- ActiveViam fait travailler les data scientists et les décideurs métiers ensemble
Les plus consultés sur iTPro.fr
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
- Construire la souveraineté numérique en Europe grâce à un écosystème ouvert et collaboratif
- Le Zero Trust : pourquoi votre entreprise en a besoin
- Cloud souverain : répondre aux enjeux d’hybridation et de maîtrise des dépendances
Articles les + lus
Les nouvelles menaces liées à l’IA obligent les entreprises à dépasser la seule stratégie de sauvegarde
Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
Construire la souveraineté numérique en Europe grâce à un écosystème ouvert et collaboratif
Editeurs, crawlers et équipes sécurité, les alliances qui feront tenir le web
Tendances Supply Chain : investir dans la technologie pour répondre aux nouvelles attentes clients
À la une de la chaîne Data
- Les nouvelles menaces liées à l’IA obligent les entreprises à dépasser la seule stratégie de sauvegarde
- Sauvegarder les données ne suffit plus : il faut refonder le poste de travail
- Construire la souveraineté numérique en Europe grâce à un écosystème ouvert et collaboratif
- Editeurs, crawlers et équipes sécurité, les alliances qui feront tenir le web
- Tendances Supply Chain : investir dans la technologie pour répondre aux nouvelles attentes clients
