Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Mysql, select MAX (sum (valore)) ? si può fare?

    Ciao ragazzi, l'oggetto della discussione la dice tutta.

    Ho una tabella con diverse colonne che riportano statistiche di baseball.
    Le righe invece indicano i dati che ogni giocatore ha fatto registrare durante ogni partita giocata. Quindi ci saranno diverse righe che appartengono allo stesso giocatore, ma più righe visto che i giocatori sono almeno una trentina.

    Vorrei trovare il leader della statistica (colonna) che decido di utilizzare.
    Per ora dopo diverse prove ho trovato questo:

    SELECT player, SUM(H) as valide
    FROM games_batting
    GROUP BY player
    ORDER BY valide desc

    E questo mi da tutta la lista delle somme del campo H raggruppato per player, in ordine decrescente. In questo modo ho trovato il mio leader.

    Però Mi chiedevo, c'è un modo di selezionare solamente 1 valore con la funzione MAX applicata a SUM(H) as valide? In modo da poter eliminare dal codice l'ORDER BY?

    Grazie mille.

    H sta per la colonna scelta.

  2. #2
    Codice PHP:
    SELECT MAX(
        
    SELECT playerSUM(H) as valide
        FROM games_batting
        GROUP BY player
        ORDER BY valide desc
    FROM games_batting LIMIT 1 
    Non so se funzionerà perchè non so se il max accettà subquery....ma è la prima possibilità che mi è venuta in mente

    altrimenti ne troviamo un'altra

    fammi sapere


    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se non ho capito male non ti basta aggiungere la clausola limit direttamente alla tua query?

    codice:
    SELECT player, SUM(H) as valide
    FROM games_batting
    GROUP BY player
    ORDER BY valide desc limit 1

  4. #4
    Si si, ma era una questione di curiosità.

    Invece ve ne sottopongo un'altra

    SELECT player, (
    SUM( H ) / SUM( AB )
    ) AS leader, SUM( AB ) AS turni, SUM( H ) AS valide, SUM( R ) AS punti, SUM( SB ) AS basirubate, SUM( RBI ) AS rbis, (
    SUM( H ) / SUM( AB )
    ) AS media
    FROM games_batting
    WHERE (
    SELECT SUM( AB )
    FROM games_batting
    WHERE player = player
    ) >
    (
    SELECT COUNT( giornata )
    FROM games
    )
    GROUP BY player
    ORDER BY leader DESC
    LIMIT 1

    è da guardare la parte con il WHERE che chiede alla query di visualizzare solo i risultati dove la somma del campo AB è superiore al numero delle giornate giocate.

    NOn funziona. Nel phpmyadmin, il segno MAGGIORE viene messo in questo modo: & gt;
    Qualche consiglio?

    Grazie ragazzi.

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.