Remplacer le vide ou une valeur NULLE à une valeur spécifique dans la RUCHE résultat de la requête

J'essaie de montrer une valeur par défaut, "les Autres", lorsque la requête ne retourne aucun résultat pour l'une des colonnes sélectionnées. Je vais vous montrer l'exemple.

Cette requête retourne une valeur vide pour os(agent) SO (au premier rang):

select country, os(agent) SO, count(*) from clicks_data
where country is not null and os(agent) is not null
group   by country, os(agent);

De sortie:

ZA           4
ZA  Android  4
ZA  Mac      8
ZA  Windows  5

Au lieu de cela, je voudrais obtenir ce résultat:

ZA  Others  4
ZA  Android 4
ZA  Mac     8
ZA  Windows 5

Ma prochaine tentative a été cette requête, mais ce n'est pas vraiment de travail, soit:

select country, regexp_replace(os(agent),'','Others') SO, count(*) from clicks_data 
where country is not null and os(agent) is not null 
group by country, os(agent);

C'est le résultat:

ZA  Others  4
ZA  OthersAOthersnOthersdOthersrOthersoOthersiOthersdOthers 4
ZA  OthersMOthersaOtherscOthers 8
ZA  OthersWOthersiOthersnOthersdOthersoOtherswOtherssOthers 5

OriginalL'auteur Sebastian Loeb Sucre | 2015-05-17