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

    [SQL] Risultato di una query

    Ciao!
    ho tentato di risolvere questo esercizio:

    Clienti(città, salario,età, IDCliente)
    città salario età IDCliente
    1 1200 20 10
    1 1200 20 11
    2 800 20 12
    2 800 25 13
    2 1000 25 14

    Stabilire il risultato della seguente query:

    SELECT eta, AVG(salario)
    FROM clienti
    WHERE salario > 800
    GROUP BY età
    HAVING count(*)>=2;

    io l'ho risolto cosi', ma e' corretto?!?

    eta' salario
    20 1000
    25 1000

    grazie, ciaooooo

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Premesso che la risposta dipende in parte dal dialetto SQL utilizzato
    premesso anche che quel Count(*) usato su un raggruppamento è equivoco
    premesso che gli accenti sono da evitare nei nomi dei campi
    premesso che "età" lo scrivi qualche volta con e qualche volta senza accento
    __________________________________________

    Tu hai questi dati di partenza ( ti ho cambiato 1 salario per chiarezza )

    - città - salario - eta - IDCliente -
    - 1 ---- 1200 --- 20 ---- 10 -
    - 1 ---- 1300 --- 20 ---- 11 -
    - 2 ---- 800 ---- 20 ---- 12 -
    - 2 ---- 800 ---- 25 ---- 13 -
    - 2 ---- 1000 --- 25 ---- 14 -

    ______________________________________________

    Hai una WHERE salario >800 quindi ti resta
    ( NON è la media del salario ad essere > 800 )
    - città - salario - eta - IDCliente -
    - 1 ---- 1200 --- 20 ---- 10 -
    - 1 ---- 1300 --- 20 ---- 11 -
    - 2 ---- 1000 --- 25 ---- 14 -

    __________________________________________

    Tu consideri solamente salario e eta quindi
    - salario - eta -
    - 1200 --- 20 -
    - 1300 --- 20 -
    - 1000 --- 25 -

    _____________________________________

    Raggruppi e fai la media e il conteggio
    ( io Count(*) lo intendo come conteggio dei record NEI VARI GRUPPI )
    - MediaSalario - eta - Conteggio
    - 1250 -------- 20 ----- 2 -
    - 1000 -------- 25 ----- 1 -

    ( il conteggio in effetti non sarebbe visibile (lo scrivo per chiarezza))
    _______________________________________

    Poi ti rimane HAVING count(*)>=2 quindi:
    - MediaSalario - eta -
    - 1250 -------- 20 -



    Facci sapere

  3. #3
    grazie mille, ora mi e' chiaro!

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.