0
votes

Comment obtenir des colonnes appropriées avec max (heure) sans utiliser de sous-requête?

J'ai le tableau suivant et les valeurs suivantes: xxx

Je veux obtenir les colonnes id et link lorsque la valeur de l'heure est max, Je peux utiliser une sous-requête pour la finition: xxx

Je ne sais pas comment finir sans utiliser de sous-requête, aucun conseil sera apprécié!

une autre:

Je veux obtenir: xxx

ou xxx

Que devrait-il Je fais?


0 commentaires

3 Réponses :


1
votes

Utilisez une sous-requête corrélée xxx pré>

si votre version est MySQL 8.0+ Ensuite, utilisez Row_Number () CODE> P>

select * from (
select a.*,row_number()over(partition by a.id order by a.time desc) rn
 from test a
) b where b.rn=1


3 commentaires

Désolé, je tiens à mettre à jour ma question, voudriez-vous y répondre! Merci


@ ABELARD2008 BTW Quelle version de MySQL vous avez utilisée si MySQL 8.0 est alors une solution plus facile est là


Merci, j'ai utilisé les deux versions 5.7 et 8.0 dans les différentes machines!



0
votes

S'il vous plaît essayez ceci.

select A.id,A.time,A.link from test  A
    order by A.time desc
    limit 1


4 commentaires

ERREUR 1055 (42000): L'expression n ° 1 de la clause de la clause n'est pas en groupe par la clause et contient la colonne non gré "Test.Test.Tempe" qui ne dépend de manière non fonctionnelle des colonnes du groupe par clause; Ceci est incompatible avec sql_mode = seulement_full_group_by


Désolé, je tiens à mettre à jour ma question, voudriez-vous y répondre! Merci


Quelle version de MySQL vous avez testé? Il n'a pas fonctionné sous 5,7


Veuillez ajouter quelques explications à vos questions telles que d'autres peuvent en apprendre



0
votes

Vous pouvez utiliser la limite ou le haut

limite (mysql): xxx

haut (MSSQL): xxx < / p>


1 commentaires

Êtes-vous sûr de cela? Je ne pense pas que top existe dans mysql