dove clausola
* Scopo: Filtri righe prima di Qualsiasi operazione di aggregazione (come `sum`,` avg`, `count`, ecc.).
* si applica a: File individuali.
* Condizioni: In genere comportano confronti e operatori logici che operano su singole colonne all'interno della tabella.
* Esempio:
`` `sql
Seleziona * da clienti dove paese ='USA';
`` `
Questa query recupera tutti i clienti dalla tabella "clienti" in cui la colonna "Paese" è uguale a "USA".
con clausola
* Scopo: Filtri righe dopo Operazioni di aggregazione.
* si applica a: I risultati dell'aggregazione (gruppo di).
* Condizioni: In genere comportano confronti dei valori aggregati utilizzando funzioni aggregate (ad esempio, `Sum (prezzo)`, `AVG (Age)`, `Count (*)`) in combinazione con operatori logici.
* Esempio:
`` `sql
Seleziona City, AVG (età) come media_age
Dai clienti
Gruppo per città
Avere media_age> 30;
`` `
Questa domanda raggruppa i clienti per "città" e calcola l'età media per ogni città. Quindi, filtra i risultati per mostrare solo città in cui l'età media è superiore a 30.
Differenze chiave in poche parole:
* Timing: `Dove` filtra prima dell'aggregazione, `avendo filtri dopo.
* Ambito: `Where` funziona su singole righe,` avere `funziona su risultati aggregati.
* Condizioni: `Where` usa le condizioni sulle singole colonne,` Avere `usa condizioni su valori aggregati.
Quando utilizzare ogni clausola:
* Utilizzare `Where` quando si desidera filtrare i dati in base ai singoli valori delle righe prima che si verifichi qualsiasi aggregazione.
* Utilizzare `Avere` quando si desidera filtrare i risultati aggregati (come i dati raggruppati) in base a condizioni che coinvolgono valori aggregati.
Nota: È possibile utilizzare sia `Where` che` avendo clausole nella stessa query, ma `Where` viene applicato per primo per filtrare le righe utilizzate per l'aggregazione, e quindi" avere` viene utilizzato per filtrare i risultati aggregati.
software © www.354353.com