0
votes

Comment utiliser max avec MySQL

J'ai une table appelée utilisateur qui est fournie ci-dessous comme image. Dans le tableau donné, je veux sélectionner la valeur la plus importante dont le décalage est 1.

table

La requête que j'ai utilisée est ci-dessous: xxx

de la requête ci-dessus, je m'attendais à max_value = 4 mais je reçois max_value = 0 . S'il vous plaît aidez-moi.


3 commentaires

Query invalide Comme vous ne pouvez pas mélanger une colonne non agrégat avec une colonne d'agrégat sans utiliser de groupe par


Oh, je l'ai merci merci!


J'ai posté la réponse s'il vous plaît vérifier.


3 Réponses :


2
votes

simple où code> clause avec groupe par code> est suffisant dans votre scénario: xxx pré>

essayez également d'éviter le mots réservés comme nom de colonne, Vous devrez peut-être échapper au nom de la colonne en recant dans ` strong> (backtick) p>

ou en utilisant avec groupe par code> p>

select `offset`, max(value) as max_val 
from `user` 
group by `offset`
having `offset` = 1


0 commentaires

2
votes

Vous pouvez utiliser un peu d'astuce ici pour éviter d'utiliser groupe par code>

cette requête (réponse d'Arulkumar) p>

Query forte > p> xxx pré>

peut être réécrit à la requête ci-dessous. de
NOTE STRAND> uniquement possible lorsque vous filtrez sur une condition comme offset = 1 code> Deux conditions ou plus, telles que décalage dans (1, 2) code> ne peuvent pas être converti p>

Query strud> p> xxx pré>

résultats strong> p>

| offset | value | offset | value |
| ------ | ----- | ------ | ----- |
| 1      | 4     |        |       |
| 2      | 4     |        |       |
| 3      | 4     |        |       |


0 commentaires

-1
votes

Vérifiez que c'est la requête

SELECT * FROM user WHERE `offset` = 1 ORDER BY value DESC LIMIT 1


6 commentaires

Que fait cette requête? Comment ça marche? pourquoi fonctionne-t-il? S'il vous plaît expliquer et développer votre réponse. Merci : -)


C'est la requête efficace, mais sous la condition que j'ai une valeur que dans l'ordre croissant !!


@UTSAVRASAD Mais vous pouvez utiliser pour sélectionner des données Cette requête ne mettra pas à jour la table.


@Martin Auteur a trouvé cette requête efficace cela vous donnera la réponse de toutes vos questions.


@Ronakchaauhan Compte tenu de certaines manipulations dans le tableau, je ne suis pas sûr que j'aurai la valeur dans l'ordre croissant et que certains cas d'Edge sont également sous lesquels la requête échouera. C'est bien, mais apporte des limitations.


Si vous n'avez besoin que d'un enregistrement de la table, cela fonctionnera à 100%. Mais je pense que vous avez posé une question très mal et n'a pas mentionné ce dont vous avez besoin exactement.