Easy
Given the following 'employees' table:
| employee_id | name | salary | department |
|-------------|---------|--------|------------|
| 1 | Alice | 3000 | HR |
| 2 | Bob | 3500 | IT |
| 3 | Charlie | 4000 | IT |
Which SQL query retrieves employees with a salary higher than the average salary?
Author: Vincent CotroStatus: PublishedQuestion passed 2266 times
Edit
7
Community Evaluations
Hind
28/08/2024
Mauvaise Utilisation de AVG(salary) avec WHERE :
La fonction d'agrégation AVG(salary) calcule la moyenne de tous les salaires dans la table.
Dans une requĂȘte SQL, les fonctions d'agrĂ©gation comme AVG(), SUM(), COUNT(), etc., sont utilisĂ©es pour calculer des valeurs sur un groupe de lignes. Ces fonctions ne peuvent pas ĂȘtre directement utilisĂ©es dans une clause WHERE car WHERE filtre les lignes avant que l'agrĂ©gation ne soit effectuĂ©e.
WHERE s'applique aux lignes individuelles avant toute agrégation, donc AVG(salary) n'est pas défini dans le contexte d'un WHERE car il n'est pas une valeur de colonne existante, mais une valeur calculée sur un groupe de lignes.
Comment SQL Traite les Clauses :
SQL traite d'abord la clause FROM, puis la clause WHERE, et ensuite les fonctions d'agrégation (AVG, SUM, etc.) sont calculées aprÚs cela, généralement dans une clause SELECT ou HAVING.
Donc, dans la clause WHERE, la requĂȘte SQL s'attend Ă une condition basĂ©e sur des valeurs de colonnes disponibles dans les lignes sĂ©lectionnĂ©es, mais AVG(salary) n'est pas encore calculĂ©e Ă ce stade.
11
Write the SQL query to delete a column from a table17
Write a SQL query to insert data into a table19
Select only distinct values in a column using SQL16
Update a column in an SQL table10
How to delete an SQL table?40
Write a SQL query to retrieve the list of employees with a salary greater than 5100.16
Which SQL keyword is used to sort the result of a SELECT statement?