0
votes

Groupe MySQL en obtenant une valeur basée sur une autre valeur de colonne

J'ai une longueur de requête longue comme la table ci-dessous xxx

puis-je utiliser groupe en pour atteindre un résultat inférieur xxx

essentiellement, je Voutirait à regrouper le nom et la valeur est basée sur la priorité sans rejoindre la requête elle-même


2 commentaires

Qu'est-ce que t et f désigne dans la colonne de priorité?


C'est vrai / faux


3 Réponses :


1
votes

row_number fournit une option ici: xxx

Capture d'écran de la démonstration ci-dessous

Démo

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.


0 commentaires

1
votes

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


0 commentaires

0
votes

Pourrais-je utiliser le groupe pour atteindre un résultat inférieur?

Oui, vous pouvez utiliser groupe par : xxx

Il existe d'autres moyens d'exprimer la logique. Row_Number () est l'un d'entre eux. Comme une sous-requête corrélée: xxx


0 commentaires