Visualizzazione dei risultati da 1 a 5 su 5

Discussione: SQL - query con MAX

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    3

    SQL - query con MAX

    ciao a tutti, prima di postare ho cercato parecchio su questo e su altri forum senza xò trovare la soluzione...


    il mio problema può in apparenza sembrare di semplice soluzione ma è estremamente particolare:


    ho una tabella (che in realtà è una SUB QUERY) x semplicità chiamata PROVINCE, costituita dai seguenti campi

    ID_PROVINCIA | ID_SPECIALIZZAZIONE | QTA

    per ogni provincia possono esserci una o + id_specializzazione e ad esse è sempre associata una quantità. "L'accoppiata" id_provincia, id_specializzazione rappresenta un valore univoco

    il mio obiettivo è quello di selezionare per ogni provincia solo la tupla corrispondente al valore + alto nella colonna QTA

    la soluzione che ho inizialmente provato è stata questa:
    SELECT id_provincia, id_specializzazione, MAX(qta)
    FROM province
    GROUP BY id_provincia, id_specializzazione


    ma mi restituisce la stessa tabella di partenza...

    credo che il problema sia dovuto al fatto che "l'accoppiata" id_provincia, id_specializzazione è univoca, infatti eliminando dalla selezione la specializzazione ottengo il valore desiderato ma il problema è che non posso escludere la specializzazione dalla selezione.


    spero di essere stato abbastanza chiaro....

    qualche suggerimento??
    Grazie!




    P.S.
    il DMBS che uso è PostGreSQL

  2. #2
    SELECT *
    FROM province T1 join (
    SELECT id_provincia, MAX(qta) as MaxQta
    FROM province
    GROUP BY id_provincia) T2
    ON T1.id_provincia=T2.id_provincia AND T1.qta=T2.MaxQta

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    3
    grazie della risposta optime,

    la tua è effettivamente un'ottima idea, ma qui sorge un'altro problema: come ho scritto nel primo post la tabella province è in realtà una subquery (piuttosto complessa), quindi con il tuo metodo dovrei duplicare la subquery raddoppiando così i tempi di esecuzione... speravo ci fosse un operatore che mi risolvesse il problema

  4. #4
    non conoscendo la tua query non potevo fare di più!

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    3
    Originariamente inviato da optime
    non conoscendo la tua query non potevo fare di più!
    ti ringrazio ancora, effettivamente quella sembra essere la soluzione + logica... visto che sto usando PostGreSQL l'alternativa saerbbe quella di inventarsi qialche funzione ad hoc... basandosi sempre su quell'idea

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.