Oracle Group di

Oracle Group di
È necessario interrogare informazioni da diverse tabelle o condizioni quando si lavora con i database relazionali. Dovrai quindi dover combinare i risultati in un determinato set per l'uso da parte dell'applicazione.Una delle clausole più preziose quando si interrogano le informazioni sulla tabella è il gruppo per clausola. Ti consente di raggruppare le righe di un determinato risultato in un insieme di valori in base a una determinata condizione. Ciò semplifica le informazioni relative alla partizione in un determinato set.Ad esempio, è possibile utilizzare il gruppo per clausola per dividere le informazioni sui dipendenti in base al loro dipartimento.

Questo tutorial ti insegnerà come utilizzare il gruppo per clausola nei database Oracle.

Oracle Group per dichiarazione

Il gruppo per clausola viene utilizzato in un'istruzione selezionata per dividere i risultati in vari gruppi. La clausola restituirà quindi una riga per gruppo.

Nella maggior parte dei casi, troverai spesso il gruppo utilizzato in combinazione con funzioni aggregate come Sum, AVG, Max, ecc. In tale scenario, la clausola raggruppa i dati nelle partizioni corrispondenti e quindi la funzione aggregata viene applicata a ciascun gruppo.

Possiamo dimostrare la sintassi per il gruppo per clausola è mostrata nello snippet di seguito:

Seleziona Col_list
Da table_name
Gruppo di espressione_1, espressione_2, ... espressione_n;

Si noti che il gruppo per clausola arriva dopo la clausola.

In alcuni casi, è possibile includere la clausola Where per limitare ulteriormente l'ambito della query, come dimostrato nella query seguente:

Seleziona Col_list
Da table_name
Dove condizione
Gruppo di espressione_1, espressione_2, ... espressione_n;

Le righe vengono quindi raggruppate in base alle condizioni specificate nelle espressioni. Si noti che la clausola deve includere solo le colonne di raggruppamento.

Tuttavia, Oracle ti consente di eseguire un raggruppamento multilivello utilizzando la parola chiave Rollup, come illustrato nello snippet di seguito:

Seleziona Col_list
Da table_name
Gruppo di rollup (espressioni_1, espressione_2, ... espressione_n);

Esempio di utilizzo

Quanto segue è un esempio utilizzato per dimostrare l'uso del gruppo per clausola nei database Oracle.

Usa i dati disponibili.

Supponiamo di avere una tabella con le informazioni come mostrato:

Esempio 1 - Gruppo di base per utilizzo della clausola

La seguente query di esempio dimostra come utilizzare il gruppo per clausola per raggruppare le righe risultanti in base al dipartimento_id.

Seleziona First_name, Dipartimento_ID dal gruppo Dipendenti di Dipartimento_ID, First_Name;

In questo caso, l'istruzione dovrebbe ordinare i risultati dei dati interrogati in base alle colonne di Dipartimento_ID e First_Name.

L'output risultante è come stabilito di seguito:

Esempio 2 - Usando il gruppo con una clausola dove

Nell'esempio seguente, delineiamo uno snippet di codice che dimostra come utilizzare la clausola del gruppo in combinazione con una clausola.

Seleziona First_name, Dipartimento_ID dai dipendenti in cui Dipartimento_ID> = 100 Gruppo di Dipartimento_ID, First_Name;

In questo caso, l'istruzione inizia selezionando le colonne First_Name e Dipartiment_ID dalla tabella. Quindi filtriamo solo per le righe il cui valore di dipartimento_id è maggiore o uguale a 100.

Infine, applichiamo il gruppo per clausola come dimostrato dalla tabella risultante di seguito:

Esempio 3 - Utilizzo del gruppo per clausola con una funzione aggregata

Come affermato, possiamo usare il gruppo per funzione con una funzione aggregata. Di seguito è riportata una dimostrazione di esempio:

Seleziona First_name, Dipartimento_ID, Sum (stipendio) dal gruppo Dipendenti di Dipartimento_ID, First_Name;

La tabella risultante:

Esempio 3 - Utilizzo del gruppo per clausola con rollup

L'esempio seguente dimostra come utilizzare la parola chiave rollup per determinare la commissione per ciascun dipendente.

Selezionare Employee_id, Stipendio, Sum (Commission_PCT * Stipendio)
Dai dipendenti
Dove Commission_PCT> = 0
Gruppo di rollup (dipendente_id, stipendio);

Risultati:

Conclusione

In questo post, abbiamo esplorato l'uso del gruppo per clausola nei database Oracle per raggruppare una serie di righe basate su una determinata espressione.