SELECT AVG(salary) FROM emp where COUNT(DISTINCT(dept)) > 3 ; Using this query, i want to calculate the average salary of Departments where employee number is more than 3.
3 Réponses :
Vous pouvez utiliser:
select avg(tolumn1) from (select count(salary) as tolumn1 from emp) A
distinct n'est pas une fonction
Où dois-je dire que c'est?
Regardez votre syntaxe, vous découvrirez facilement où vous avez dit que c'est !!
On dirait que je l'ai fait .. Je viens de copier coller le code et changé un mot clé ... merci!
@fahmi j'ai utilisé la fonction terme en général, je connais son mot clé
Salut @blaezi fait ma réponse vous aide? Sinon, je ne peux pas le supprimer afin que d'autres puisse peut-être l'ouvrir plus tôt et le répondre ...
@Vboka oui mec, ça m'a aidé ... merci d'avoir répondu.
Je veux calculer le salaire moyen des départements où le numéro d'employé est supérieur à 3. P>
Comme je interprète la question, vous voulez: p>
xxx pré> Si vous souhaitez la moyenne dans tous les départements, il n'est pas clair si vous souhaitez la moyenne des moyennes de département . Ou la moyenne des employés de ces départements. De toute façon, vous avez besoin d'une sous-requête: p>
xxx pré> blockQquote>
Le résultat requis pour le problème ne peut être obtenu sans une jointure sur la table du département et la table des employés. Par conséquent, en utilisant des alias pour les deux tables avec un groupe par clause suivi d'une clause. P> SELECT AVG (E.Salary), D.Department_Name des départements en tant qu'employé de jointure intérieure en tant que e sur d.dept_id = e.dept_id Group par Ministère Nom comptez (EMP_ID)> 3 CODE> p>
Quelle base de données utilisez-vous?
Gestion SQL Server
Notez que
distinct code> est pas b> une fonction. Mettre la colonne en suivant que le mot clé entre les parenthèses ne changera rien.
Veuillez fournir des données d'échantillonnage et des résultats souhaités.