Maison > base de données > tutoriel mysql > Comment résoudre l'erreur « Pas une fonction de groupe à groupe unique » dans SQL ?

Comment résoudre l'erreur « Pas une fonction de groupe à groupe unique » dans SQL ?

Patricia Arquette
Libérer: 2025-01-04 07:46:40
original
610 Les gens l'ont consulté

How to Resolve the

Comprendre l'erreur « Pas une fonction de groupe à groupe unique » dans SQL

Lors de la tentative de combinaison de fonctions de groupe avec des expressions de colonne individuelles dans un SELECT déclaration, comme dans la requête fournie :

SELECT SSN, MAX(SUM(TIME))
FROM downloads
GROUP BY SSN
Copier après la connexion

Vous pouvez rencontrer l'erreur "pas une fonction de groupe à groupe unique". Cela se produit car la fonction de groupe SUM(TIME) calcule une valeur unique pour chaque groupe (SSN), ce qui la rend incompatible avec l'expression de colonne individuelle SSN.

Pour résoudre cette erreur, vous disposez de plusieurs options :

  1. Supprimer l'expression de colonne individuelle :

    SELECT MAX(SUM(TIME))
    FROM downloads
    GROUP BY SSN
    Copier après la connexion

    Cela ne renverra que le maximum valeur de somme sans le SSN correspondant.

  2. Ajoutez une clause GROUP BY pour toutes les expressions de colonne :

    SELECT SSN, MAX(SUM(TIME))
    FROM downloads
    GROUP BY SSN, TIME
    Copier après la connexion

    Cela regroupera les résultats par à la fois SSN et TIME, ce qui rend la fonction MAX(SUM(TIME)) valide.

  3. Utilisez une sous-requête agrégée :

    SELECT SSN, SUM(TIME)
    FROM downloads
    GROUP BY SSN
    HAVING SUM(TIME) = (SELECT MAX(SUM(TIME)) FROM downloads GROUP BY SSN)
    Copier après la connexion

    Cette sous-requête calcule la valeur de somme maximale et sélectionne uniquement les lignes où la SUM( TIME) pour chaque SSN correspond à ce maximum.

En fonction de votre exigences, l'une de ces solutions vous permettra d'obtenir les résultats souhaités sans rencontrer l'erreur « pas une fonction de groupe à groupe unique ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal