SQL实验室练习

SQL实验室练习,sql,command-line,Sql,Command Line,我应该创建一个查询来显示job_id、job_id的编号、sum(salary)和ave(salary) 可能的结果: JOB_ID NO. OF JOB_ID SUM(SALARY) AVE(SALARY) ------------------------------------------------------- IT_PROG 3 10200 5100 AC_MGR 1

我应该创建一个查询来显示job_id、job_id的编号、sum(salary)和ave(salary)

可能的结果:

JOB_ID    NO. OF JOB_ID    SUM(SALARY)    AVE(SALARY)
-------------------------------------------------------
IT_PROG         3             10200          5100
AC_MGR          1             12000          12000
. 
.
. 
12 rows selected.
我的输入在下面,但我无法得到上面所说的输出。 我需要根据他们的工作id对他们的工资进行分组,但我无法输入工作id,因为它不是按功能分组的

 SQL > SELECT JOB_ID, COUNT(MAX(JOB_ID)) AS "NO. OF JOB_ID", SUM(SALARY), AVG(SALARY)
 2  FROM EMPLOYEES
 3  GROUP BY JOB_ID, SALARY;

我做错了什么?谢谢

我相信这是您输出所需的代码:

SELECT job_id, COUNT(job_id) AS "NO. OF JOB_ID", SUM(salary), AVG(salary)
FROM employees
GROUP BY job_id;
问题是,你不仅按照工作id进行分组,而且还按照工资进行分组,这使得你无法获得该工作id的工资总和和平均值(它没有得到该工作id的平均值,但对于该工作id和该工资,也就是说,它得到的是非常相同的工资)

除此之外,不需要MAX来计算该job_id的出现次数


我希望我能提供帮助:)

我相信这是您输出所需的代码:

SELECT job_id, COUNT(job_id) AS "NO. OF JOB_ID", SUM(salary), AVG(salary)
FROM employees
GROUP BY job_id;
问题是,你不仅按照工作id进行分组,而且还按照工资进行分组,这使得你无法获得该工作id的工资总和和平均值(它没有得到该工作id的平均值,但对于该工作id和该工资,也就是说,它得到的是非常相同的工资)

除此之外,不需要MAX来计算该job_id的出现次数


我希望我能帮上忙:)

您有不止一个错误。几乎没有数据库支持嵌套聚合函数。第二,您的
组中有
工资
。这是没有意义的,因为你需要计算
薪水

因此,这个查询大概更像:

SELECT JOB_ID, COUNT(*) AS "NO. OF JOB_ID", SUM(SALARY), AVG(SALARY)
FROM EMPLOYEES e
GROUP BY JOB_ID;

如果希望结果按特定顺序排列(例如按
COUNT(*)
,那么您应该包含一个明确的
ORDER BY

您有多个错误。几乎没有任何数据库支持嵌套的聚合函数。其次,您在
GROUP BY
中有
SALARY
。这没有意义,因为您需要对
SALARY
进行计算

因此,这个查询大概更像:

SELECT JOB_ID, COUNT(*) AS "NO. OF JOB_ID", SUM(SALARY), AVG(SALARY)
FROM EMPLOYEES e
GROUP BY JOB_ID;

如果您希望结果按特定顺序排列(如按
计数(*)
,那么您应该按照

包含一个明确的
顺序。您正在将结果与薪资字段分组,该字段也在计算中使用。您只需从gorup by中删除该字段,它就会像一个符咒一样工作

选择职务ID,计数(*)为“职务ID号”,总和(工资)为 “总额(工资)”,平均(工资)为“平均(工资)”,由员工组提供 工作证


您正在将结果与计算中使用的“薪资”字段进行分组。您只需从gorup by中删除该字段,它就会像一个符咒一样工作

选择职务ID,计数(*)为“职务ID号”,总和(工资)为 “总额(工资)”,平均(工资)为“平均(工资)”,由员工组提供 工作证



SALARY
groupby
中删除。将
SALARY
groupby
中删除。非常感谢,我只是感到困惑,因为每当我使用groupby函数时,它总是显示一个错误,而且我没有将其包含在groupby中。谢谢你,我只是感到困惑,因为它总是显示一个错误E无论我使用的是“分组依据”函数,但我没有将其包含在“分组依据”中。非常感谢您!感谢您的解释,我没有发现这个问题。谢谢您没问题,很高兴提供帮助:)@不幸的是,不可能将多个答案指定为正确答案。如果您可以返回将我的答案指定为正确答案,我将不胜感激,因为这是正确的,并且是第一个发布的答案(您可以通过在“答案部分”标题上排序来查看旧答案。Tnx:)当然,我很抱歉,我不知道这是怎么回事,但我把你的指定为正确的:)非常感谢!为了解释这一点,我没有看到这个问题。谢谢你没问题,很乐意帮忙:)@Pengu很遗憾,不能指定多个答案为正确答案。如果您能返回将我的答案指定为正确答案,我将不胜感激,因为它是正确的,并且是第一个发布的答案(您可以通过在“答案部分”标题上排序来查看较旧的答案。Tnx:)当然,我很抱歉,我不确定这是如何工作的,但我认为你的答案是正确的:)非常感谢你花时间回复并帮助我。是的,我比你投的票高!但是我只有不到15个名声,这不允许我继续保持下去。哦,不用担心:)非常感谢你花时间回复并帮助我是的,我比你投得高!但是我只有不到15个名声,这不允许我继续保持下去