Bonjours à tous.

Je voudrais récupérer dans ma requête le champ qui apparait le plus de fois. Je pense qu'il faut utiliser la clause having couplé à un case.
Voici un exemple sur le résultat de ma requête.
ID_L | ID_O | ID_B
71 36 2
72 36 3
73 36 3
75 35 3
78 23 2
79 23 2
80 36 4
81 23 4
Et voici ce que je voudrais récupérer :

ID_B | ID_O
2 23
3 36
4 NULL
Voici une requête que j'ai fait mais a la place de ID_O c'est IS_D et IS_D ne peut avoir que 2 valeurs 0 ou 1. Ce qui n'est plus le cas.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT B.ID, (case when COUNT(case when L.IS_D = 1 then 1 else null end) > 
					COUNT(case when L.IS_D = 0 then 1 else null end)
				then 'DEF' 
				when COUNT(case when L.IS_D = 1 then 1 else null end) = 
					COUNT(case when L.IS_D = 0 then 1 else null end)
				then 'NULL'
				else 'DEM' end) 
FROM L
JOIN B
ON L.ID_B = B.ID GROUP BY B.ID
Merci de votre aide.