Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di jesus
    Registrato dal
    Jan 2002
    Messaggi
    717

    [SQL] - Query GROUP BY con MAX

    Salve a tutti. Devo fare una query che pesca i dati su una tabella di questo tipo:
    codice:
    +------+------+------+
    | col1 | col2 | col3 |
    +------+------+------+
    | 100  | 500  | 3    |
    +------+------+------+
    | 100  | 501  | 2    |
    +------+------+------+
    | 200  | 620  | 2    |
    +------+------+------+
    | 200  | 623  | 4    |
    +------+------+------+
    Vorrei che questa query mi restituisse i dati così formati:
    codice:
    +------+------+------+
    | col1 | col2 | col3 |
    +------+------+------+
    | 100  | 501  | 2    |
    +------+------+------+
    | 200  | 623  | 4    |
    +------+------+------+
    ossia vorrei che mi restituisse solo i record che, a parità di valore di col1, abbia col2 maggiore.

    Mi potete dare una mano?

    Grazie.

    P.S.: Quanto è difficile creare delle tabelle su un post
    <%= Jesus %>
    "Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna" - Albert Einstein.

  2. #2
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    codice:
    SELECT col1, Max(col2) AS MaxDicol2
    FROM Tabella
    GROUP BY col1;

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    per avere anche col3 nel risultato
    codice:
    SELECT 
    NomeTabella.* 
    FROM 
    NomeTabella 
    INNER JOIN 
    (SELECT col1, MAX(col2) AS col2 FROM NomeTabella GROUP BY col1)AS X 
    ON NomeTabella.col1=X.col1 AND NomeTabella.col2=X.col2 
    ORDER BY col1

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 © 2024 vBulletin Solutions, Inc. All rights reserved.