J'ai la requête suivante ...
SELECT DISTINCT
inv.name,
loc.city,
cls.color
FROM INVENTORY inv
INNER JOIN Model mod ON mod.id = inv.id
LEFT OUTER JOIN Location loc ON loc.id = mod.id
LEFT OUTER JOIN Class cls ON cls.id = mod.id
ORDER BY name, city asc;
Ce qui me donnera ce qui suit ...
NAME | CITY | Color
1 Bob New York Red
2 Janet Denver Green
3 John New York Blue
Mais mes résultats souhaités sont ...
NAME | CITY | Color
1 Bob New York Red
2 John New York Blue
Plusieurs publications sont similaires mais ne semblent pas fonctionner pour ma requête spécifique car je joins plusieurs tables à l'aide d'une jointure interne et de deux jointures externes à gauche. Toute aide est grandement appréciée!
Réponses:
0 pour la réponse № 1Si vous souhaitez simplement que les villes apparaissent plusieurs fois, utilisez les fonctions analytiques:
with t as (
<your query here without the order by>
)
select t.*
from (select t.*, count(*) over (partition by city) as city_cnt
from t
) t
where city_cnt > 1;