Bonjour,
J'ai à faire une requête un peu compliquée, et étant complètement novice en SQL j'avoue être à court d'idées.
J'ai une table dont un extrait ressemble à ceci:
HOG000000001 HOG000000001-consensus 191 191 341.3 341.1 2 190 2 190
HOG000000002 HOG000127606-consensus 188 195 24.0 22.4 19 162 40 174
HOG000000002 HOG000003646-consensus 188 247 22.2 10.6 18 47 105 133
HOG000000002 HOG000003646-consensus 188 247 22.2 9.5 95 162 170 229
HOG000000002 HOG000286625-consensus 188 671 21.9 21.2 3 148 496 632
HOG000000002 HOG000236521-consensus 188 222 21.2 20.8 63 149 104 183
HOG000000002 HOG000223036-consensus 188 237 20.2 19.7 85 121 167 204
etc..
et je voudrais obtenir quelque chose qui ressemble a ça:
HOG000000002 HOG000127606-consensus 188 195 24.0 22.4 19 162 40 174
HOG000000002 HOG000286625-consensus 188 671 21.9 21.2 3 148 496 632
HOG000000002 HOG000236521-consensus 188 222 21.2 20.8 63 149 104 183
HOG000000002 HOG000223036-consensus 188 237 20.2 19.7 85 121 167 204
HOG000000002 HOG000003646-consensus 188 247 22.2 10.6 18 47 105 133
HOG000000002 HOG000003646-consensus 188 247 22.2 9.5 95 162 170 229
Les règles sont les suivantes:
1)je requête sur la 1ere colonne jusque là pas de problème...
2)les identifiants de la seconde colonne doivent être à côté lorsqu'ils sont identiques (ce n'est pas compliqué)...
3)les groupes "à côté" définis ci-dessus doivent êtres classés selon la valeur maximale dans ce même groupe de la colonne numéro 6(ici au départ le couple [HOG000000002 HOG000003646-consensus] a été déplacé vers le bas car la valeur maximale de la colonne 6 pour ce groupe (en l'occurrence 10.6) est inférieure à celle des autres([HOG000000002 HOG000223036-consensus](19.7), [HOG000000002 HOG000236521-consensus](20.8))
Du coup j'ai essayé d'utiliser une commande du style:
1 2 3 4 5
| select *
from hogenom_hits5
where col1='HOG000000002'
group by col1,col2
order by col6; |
mais bon il est évident que cela ne peut pas marcher,
Quelqu'un aurait il une idée simple pour faire cette requête ?
Partager