[Oracle] Group by in una tabella

Vince.Scav

Nuovo Utente
21 Feb 2019
4
0
1
Salve a tutti, stavo sperimentando con TOAD alcuni comandi per fare una select avendo una colonna sesso, una colonna reddito e una colonna nome. Il mio obbiettivo è fare prima un ordinamento in base al sesso e poi fare il totale reddito di tutti i maschi e tutte le femmine solo che provando con group by mi da alcuni errori ed essendo alle prime armi vorrei sapere se qualcuno sa come fare.

Obbiettivo finale: Vedere i nomi ordinati per sesso con il totale prima di un sesso e poi dell'altro.
 
Io sono arrivato a questa query il problema è che vorrei un sum(reddito) totale di tutti M e tutte F non per singola persona
 

Allegati

  • Immagine.png
    Immagine.png
    20,2 KB · Visite: 524
non mi é chiaro bene il risultato, ma provo a darti 2 soluzioni,

con la prima ottieni i due totali F/M o comunque i totali sommati per i valori presenti nella colonna sesso
Codice:
select sesso, sum(reddito) as reddito group by sesso order by sesso

la seconda ti produce (dovrebbe) un elenco di F, il suo totale, M ed il suo totale
Codice:
select sesso, nome, reddito, 1 as sequenza
union
select sesso, "TOTALE" as nome, sum(reddito) as reddito, 2 as sequenza group by sesso, sequenza, nome
order by sesso, sequenza, nome
in questo esempio, nota che in entrambe le select, sono presenti gli stessi nomi nello stesso ordine ….
 
anche il primo ti deve dare lo stesso errore,
supponevo leggessi la query e inserissi il nome della tabella da dove leggere i dati
prima di buttarti a scrivere che ti da errore …...
 

Discussioni simili