Obtenez valeur maximale d'un requête GROUP BY sans sous-requête dans mySQL

voix
1

j'ai quelques requêtes qui jeux de données groupe et compte, par exemple,

  SELECT COUNT(*)
    FROM `table`
GROUP BY `column`

maintenant j'ai le nombre de lignes pour lesquelles columnest la même, si tout va bien.

problème est: comment puis-je obtenir les valeurs globale (min / max / moyenne / somme) pour les « groupées » compte. à l'aide d'un sous-requête est que le plus facile, mais je me demandais si cela est possible dans cette seule requête

Créé 26/08/2009 à 22:35
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
1

Pour minet maxvous pouvez ORDER BYchercher la première ligne. Pour sum/ avg/ autres agrégats que vous auriez besoin d' un sous - requête.

Créé 26/08/2009 à 22:38
source utilisateur

voix
0

Dans MySQL, vous devriez être en mesure de le faire à la fois. Mes tests semblent indiquer que cela fonctionne.

| date       | hits |
|-------------------|
| 2009-10-10 |    3 |
| 2009-10-10 |    6 |
| 2009-10-10 |    1 |
| 2009-10-10 |    3 |
| 2009-10-11 |   12 |
| 2009-10-11 |    4 |
| 2009-10-11 |    8 |
 -------------------

SELECT COUNT(*), MAX(hits), SUM(hits) FROM table GROUP BY date

| COUNT(*)  | MAX(hits) |
|-----------|-----------|
|        4  |         6 |
|        3  |        12 |
 -----------------------

SUM, MIN et AVG fonctionnent également. Est-ce ce que vous recherchez?

Créé 27/08/2009 à 03:09
source utilisateur

voix
0
| date       | hits |
|-------------------|
| 2009-10-10 |    3 |
| 2009-10-10 |    6 |
| 2009-10-10 |    1 |
| 2009-10-10 |    3 |
| 2009-10-11 |   12 |
| 2009-10-11 |    4 |
| 2009-10-11 |    8 |

Je pense que Knittl essayait de faire quelque chose comme ceci:

select min(hits), max(hits), avg(hits), sum(hits)<br>
from table
group by date
Créé 05/05/2011 à 13:23
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more