Comment requête afin que les résultats afficheront seul enregistrement ayant pas sans double codage en dur? Voir les résultats
Répondre
Vous venez de sélectionner les enregistrements qui ont le empcode
dans une table de empcodes qui ont seulement un événement.
SELECT
empcode,
leavecode
FROM mytable
WHERE empcode in (
SELECT empcode FROM mytable GROUP BY empcode HAVING count(1)=1
)
Merci beaucoup. Cela m'aide beaucoup. –
Si vous voulez empcode
s sans doublons, puis d'une façon simple utilise l'agrégation:
select empcode, min(leavecode) as leavecode
from t
group by empcode
having count(*) = 1;
Cela fonctionne, parce que s'il n'y a qu'une seule ligne pour un empcode
, puis min(leavecode)
est leleavecode
.
Une autre méthode utilise des fonctions de fenêtre:
select empcode, leavecode
from (select t.*, count(*) over (partition by empcode) as cnt
from t
) t
where cnt = 1;
Ou, si leavecode
s sont uniques quand il y a des doublons, peut-être la façon la plus efficace:
select t.*
from t
where not exists (select 1
from t t2
where t2.emp_code = t.empcode and t2.leavecode <> t.leavecode
);
Merci beaucoup. Ça aide beaucoup. –
S'il vous plaît partager les détails de votre table et les requêtes vous utilisez. – ArunGeorge
Dans votre exemple, il n'y a pas du tout d'enregistrements en double –