Question from the SQL - Fundamentals test

Write a SQL query to retrieve employees with a salary higher than the average salary.

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 1670 times
Edit
5
Community Evaluations
developer avatar
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.