Nelle espressioni della clausola di proiezione (SELECT) si possono avere anche funzioni che calcolano valori a partire da insiemi di tuple. Esse sono dette funzioni di gruppo:
SELECT si possono specificare più funzioni di gruppo contemporaneamente, anche su attributi diversi, ma non si può avere un misto di funzioni di gruppo e attributi/espressioni "normali" (perchè il risultato è una singola tupla, quindi non può contenere tutti i valori di una colonna).Le principali funzioni di gruppo previste da SQL sono:
MAX: determina il massimo di un insieme di valoriMIN: determina il minimo di un insieme di valoriSUM: calcola la somma dei valori di un insiemeAVG: calcola la media dei valori di un insiemeCOUNT: determina la cardinalità di un insiemeAd eccezione di COUNT, quesste funzioni si applicano solo su insiemi di valori semplici, e non su insiemi di tuple. In particolare, SUM e AVG sono definite solo per insiemi di valori numerici.
L'insieme di valori è denotato nel caso più semplice dal nome di una colonna, ma in generale può essere una qualsiasi espressione contenente nomi di colonne. Inoltre, queste funzioni possono a loro volta essere usate all'interno di espresioni aritmetiche (composte da valori costanti o altre funzioni di gruppo, ma non nomi di colonne)
Eventuali valori nulli vengono eliminati dall'insieme prima del calcolo della funzione di gruppo. Se l'insieme dei valori è vuoto (dopo l'eventuale rimozione dei valori nulli), COUNT restituisce 0, mentre le altre funizioni restituiscono NULL.
COUNTLa funzione di gruppo COUNT può avere come argomento
*, per contare il numero di tupleDISTINCTTutte le funzioni di gruppo possono essere usate con il qualificcatore DISTINCT, per eliminare eventuali valori duplicati prima di applicare la funzione.
L'eliminazione dei duplicati è significativa (cioè ha effetto sul risultato) solo per le funzioni SUM, AVG e COUNT(e comunque, si usa soprattutto per COUNT).