J'ai quelques exemples de données dans ma base de données PostgreSQL 9.5 comme suit:Comment puis-je trouver conditionnellement mode dans PostgreSQL
Group length
A 19.3
A 19.3
A 20.3
A 20.3
A 19.3
A 19.3
B 22.1
B 19.3
B
B 15.5
B 12.8
B 14.7
Pour chaque groupe, je voudrais trouver conditionnellement le mode (la valeur la plus répétitive/commune) en utilisant la fonction PostgreSQL mode()
telle sorte que:
- Si est nul dans les longueurs, le remplacer par 0,0
- mode Rechercher pour chaque/groupe unique
- S'il y a deux modes, retour la plus grande valeur
- Si le mode n'existe pas revenir alors 0,0 pour ce groupe
La sortie souhaitée pourrait être comme:
Group length
A 19.3
B 0.0
Comment puis-je sous conditions trouver le mode, quelqu'un peut-il m'aider?
Merci beaucoup mais il a retourné 22.1 pour le groupe B où il n'y a pas de valeur répétée (pas de mode) et il devrait retourner zéro selon ma condition. –
Pourquoi faites-vous le tri par DESC? J'ai ajouté cette ligne, mode() dans le groupe (ordre par coalesce (longueur, 0)) et cela a fonctionné. –