Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> SQL Server >> .

Qual è la differenza tra dove e avere clausole SQL?

Le clausole `Where` e` hanno `Clausole in SQL servono a scopi diversi, sebbene entrambi filtrano le righe in base alle condizioni. Ecco una rottura:

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