0
votes

MySQL multiple valeurs max d'une table

J'ai la structure inférieure à la structure xxx

la sortie doit être xxx

Il doit renvoyer la valeur C1 la plus élevée dans chaque séquence qui a la même séquence Valeur de C2

Le groupe simple ne fonctionne pas, veuillez guider comment y parvenir.

Merci d'avance


5 commentaires

Les valeurs C1 sont-elles consécutives sans lacunes?


@Nick Non, ça pourrait être tout


Je dois trouver le plus haut de C1 jusqu'à la poursuite de la même valeur de C2


Quelle version de mysql?


La version est 5.6.10


3 Réponses :


3
votes

semble être comme si vous voulez des enregistrements où aucun C1 plus élevé code> existe ou le c2 code> du prochain C1 code> n'est pas égal au courant C2 code>. Vous pouvez obtenir le prochain C2 code> dans une commande de sous-requête par C1 code> à l'aide de limite 1 code>.

SELECT t1.c1,
       t1.c2
       FROM elbat t1
       WHERE NOT EXISTS (SELECT t2.c2
                                FROM elbat t2
                                WHERE t2.c1 > t1.c1)
              OR (SELECT t2.c2
                         FROM elbat t2
                         WHERE t2.c1 > t1.c1
                         ORDER BY t2.c1
                         LIMIT 1) <> t1.c2;


0 commentaires

2
votes

Vous pouvez le faire par rejoindre gauche à la table sur la valeur suivante de la table ayant une valeur différente C2 . Nous utilisons un groupe par pour obtenir la dernière ligne de la table qui n'a pas de correspondance: xxx

sortie: xxx

démo sur dbfiddle


0 commentaires

2
votes

Vous voulez le max C1 pour chaque série de C2:

| C1  | C2  |
| --- | --- |
| 3   | A   |
| 5   | B   |
| 6   | A   |
| 7   | C   |


0 commentaires