J'ai une table nommée « démo » avec les données suivantes:Sélectionnez des lignes identiques en fonction des valeurs maximales d'une colonne et seulement choisir une des lignes lorsque max est égal à
Name Group MX A XY 1 B YZ 1 B XY 2 C YZ 5 C XY 3 D YZ 2 E YZ 1 E XY 1
Je veux des noms uniques basés sur « MX «valeur maximale, lorsque le « MX » pour deux noms identiques sont égaux je besoin d'un d'entre eux comme illustré ci-dessous:
Name Group MX A XY 1 B XY 2 C YZ 5 D YZ 2 E YZ 1 -- or this {E XY 1}
Voici ma requête:
SELECT demo.Name, demo.Group, demo.MX
FROM (
SELECT Name, MAX(MX) AS max_values
FROM demo
GROUP BY Name
) demo2
INNER JOIN demo
ON demo.Name = demo2.Name
AND demo.MX = demo2.max_values
Il travaille de façon charmante, mais quand les deux noms sont identiques, il affiche à la fois comme suit:
Name Group MX A XY 1 B XY 2 C YZ 5 D YZ 2 E YZ 1 E XY 1
Quelles méthodes préconisez-vous?
Voir: [Pourquoi devrais-je fournir un MCVE pour ce qui me semble être une requête SQL très simple?] (https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a- requête très simple-sql) – Strawberry