Je veux obtenirproblème sql, défi
id a b c
--------------------
1 1 100 90
6 2 50 100
... à partir de:
id a b c
--------------------
1 1 100 90
2 1 300 50
3 1 200 20
4 2 200 30
5 2 300 70
6 2 50 100
Il est la ligne avec le groupe le plus petit b par un.
Comment le faire avec sql?
EDIT
je pensais que ce peut être réalisé par
select * from table group by a having min(b);
que j'ai trouvé plus tard, il est faux.
Mais est-il possible de le faire avec having
déclaration?
J'utilise MySQL
Ajout de la balise 'most-n-per-group' parce que cette question est essentiellement la même que des dizaines d'autres demandes sur StackOverflow. –
Et si j'ajoutais la ligne suivante à vos exemples de données: 'insérer dans les valeurs mytable (id, a, b, c) (7, 2, 50, 80);' Quelle ligne vous attendriez-vous dans votre requête: 'id = 6' ou' id = 7'? tous les deux? – Asaph
Bon point - devrait-on rencontrer des liens (où il y a deux rangées avec la même valeur b minimale), comment une rangée serait-elle sélectionnée par rapport à l'autre? –