J'ai les tables suivantes:
réserva_tanatosalas strong>
J'ai la requête suivante: p> résultats: strong> est Affichage de la valeur maximale droite mais le mauvais
p> cod_reserva code>. Pourquoi? P> cod_reserva MAX(r.hora_fin_utc)
7 9999999999
8 9999999999
4 Réponses :
N'utilisez pas groupe par code> pour cela. Votre requête est mal formée et ne fonctionnera pas dans les versions les plus récentes de MySQL (avec les paramètres par défaut) ou presque toutes les bases de données. SELECT r.cod_reserva, MAX(r.cod_tanatosala) FROM reservas_tanatosalas r
GROUP BY r.cod_tanatosala
HAVING MAX(r.hora_fin_utc)
Quelle est la raison de ne pas utiliser de groupe par?
@Shoyebsheikh est là un moyen d'utiliser le groupe par?
@Gordonlinoff Vous avez raison "avoir" est inutile ici. J'étais confuse d'essayer de choisir une ligne après le groupe. Merci d'avoir répondu.
@RICARDO Vérifiez ma réponse, j'ai trouvé un travail avec groupe par clause
Vous regroupez les résultatsset à l'aide d'une colonne différente, tandis que votre instruction SELECT fait référence à une autre. Vous devriez certainement fonctionner, s'il vous plaît laissez-moi savoir s'il ne:
J'ai couru la même requête que la même requête que le vôtre, mais j'ai utilisé une fonction d'agrégate max () sur r.cod_reserva, car sans cela donne une erreur "Ceci est incompatible avec sql_mode = Seul_full_group_by "et je l'ai eu fonctionner, vous pouvez le tester avec max (R.cod_reserva). P> P>
Tout d'abord dans la plupart des bases de données, y compris la nouvelle version de MySQL, ce code émettra une erreur pendant que vous regroupez par une colonne qui ne fait pas partie de SELECT. La requête suivante vous donnera ce que vous êtes après pour le jeu de données que vous avez montré
select (select t.cod_reserva from reservas_tanatosalas t
where t.hora_fin_utc = a.max_hora_fin_utc
and a.cod_tanatosala = t.cod_tanatosala) cod_reserva,
a.max_hora_fin_utc
from (
SELECT x.cod_tanatosala, MAX(x.hora_fin_utc)max_hora_fin_utc
FROM reservas_tanatosalas x group by x.cod_tanatosala
)a;
Pouvez-vous montrer toutes les colonnes de l'image?
La photo montre toutes les colonnes.
double possible de SQL sélectionner uniquement les lignes avec la valeur maximale sur une colonne