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

    [SQL e ACCESS] massimo numero occorrenze max(count(*))

    Ciao a tutti,
    sto scrivendo query in sql interfacciandomi con un database scritto in access tramite un'applicazione java.
    Dato che nella mia query ho bisogno di contare il massimo numero di occorrenze di una tabella, rispetto a un particolare attributo, ho scritto:

    max(count(studente)) <--devo trovare il corso universitario con il massimo numero di studenti...


    abbreviata l'istruzione, qualcuno potrebbe aiutarmi a capire perché la jvm mi dà errore?
    E' la sintassi che è sbagliata o un problema di access?


    p.s. : L'errore è "Impossibile avere una funzione di aggregazione nell'espressione max(count(studente))".

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Basta che esegua un raggruppamento, ordini in senso decrescente e recuperi la prima voce.

    Esempio:

    codice:
    SELECT TOP 1 corso, sum(studente) AS quanti
    FROM tabella
    GROUP BY corso
    ORDER BY sum(studente) DESC;
    Nel caso debba contemplare l'eventualità che vi siano più corsi con lo stesso numero massimo di studenti devi scrivere la query in maniera diversa

    codice:
    SELECT corso, sum(studente) AS quanti
    FROM tabella
    GROUP BY corso
    HAVING sum(studente) = ( select max(quanti) from  (select  sum(studente) as quanti  from tabella group by corso));

  3. #3
    grazie mille!(anche se un po' in ritardo!)
    non conoscevo la "clausola" top per recuperare la prima voce, la seconda sicuramente mi è più familiare.
    Cmq interessante anche la top

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.