Supposons que nous avons le tableau suivant:En SQL dans une expression "group by": comment obtenir la chaîne qui se produit le plus souvent dans un groupe?
Id A B
1 10 ABC
2 10 ABC
3 10 FFF
4 20 HHH
Comme résultat d'un « groupe par une » expression je veux avoir la valeur de la colonne B qui se produit le plus souvent:
select A, mostoften(B) from table group by A;
A mostoften(B)
10 ABC
20 HHH
Comment est-ce que je réalise cela dans Oracle 10g?
Remarque: En cas d'égalité (lorsque plusieurs valeurs surviennent le plus souvent), peu importe la valeur sélectionnée.
Oui, il a besoin du nombre max. Mais pour les problèmes de performances, il est plus rapide de demander au moteur sql de les récupérer tous, de les trier par occurrence et de ne sélectionner que le premier élément de l'ensemble résultant. C'est pourquoi je préfère la réponse de LFSR Consulting à la vôtre et aux autres réponses jusqu'à présent. –
Mon message original était réel incorrect, fixe –
Great. Oracle n'est tout simplement pas satisfait du "as" avant "count_table" et "order_table", mais sinon ça va. –