J'ai une longueur de requête longue comme la table ci-dessous puis-je utiliser groupe en pour atteindre un résultat inférieur p> essentiellement, je Voutirait à regrouper le nom code> code> et la valeur est basée sur la priorité sans rejoindre la requête elle-même p> p>
3 Réponses :
La stratégie ici est Attribuer une valeur de séquence de numéro de ligne à chaque élément / groupe de département des enregistrements (qui serait soit un ou deux enregistrements). Les enregistrements de priorité réels ont été attribués une valeur de séquence de 1, sauf indication contraire, dans quelle mesure la priorité des faux enregistrements serait attribué 1. P> p> row_number code> fournit une option ici:
Démo h2>
p>
Vous pouvez utiliser Row_Number ()
select * from ( select item_id, name, value, row_number() over(partition by item_id,name order by case when priority='T' then 1 else 2 end) as rn from tablename )A where rn=1
Pourrais-je utiliser le groupe pour atteindre un résultat inférieur? P>
Oui, vous pouvez utiliser
groupe par code>: p>
xxx pré> Il existe d'autres moyens d'exprimer la logique.
Row_Number () code> est l'un d'entre eux. Comme une sous-requête corrélée: p>
xxx pré> blockQquote>
Qu'est-ce que t et f désigne dans la colonne de priorité?
C'est vrai / faux