首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL薪资分组

SQL薪资分组
EN

Stack Overflow用户
提问于 2018-07-31 04:21:53
回答 1查看 40关注 0票数 0

我有一个问题要问,我应该创建一个查询,它显示:

代码语言:javascript
复制
  MIN(lastname)   MAX(firstname)   SUM(salary)    AVG(salary)
---------------------------------------------------------------
  DAVIES            TRINA           17500           3500

这是我创建的查询/查询:

代码语言:javascript
复制
 SQL> SELECT MIN(LASTNAME), MAX(FIRSTNAME), SUM(SALARY), AVG(SALARY)
 2  FROM EMPLOYEES
 3  GROUP BY JOB_ID;

 SQL> SELECT MIN(LASTNAME), MAX(FIRSTNAME), SUM(SALARY), AVG(SALARY)
 2  FROM EMPLOYEES
 3  GROUP BY JOB_ID, MANAGER_ID;

但我得到了多行显示给我,在戴维斯,特里娜显示的部分,和AVG的工资是不同的,我不知道它们是如何分组的。

代码语言:javascript
复制
  MIN(LASTNAME) MAX(FIRSTNAME) SUM(SALARY) AVG(SALARY)
     ---------- ---------- ----------- -----------
      ERNST      DIANA            10200        5100
      HIGGINS    SHELLEY          12000       12000
      GIETZ      WILLIAM           8300        8300
      MOURGOS    KEVIN             5800        5800
      WHALEN     JENNIFER          4400        4400
      DE HAAN    NENA             34000       17000
      ZLOTKEY    ELENI            10500       10500
      HARTSTEIN  MICHAEL          13000       13000
      KING       STEVEN           24000       24000
      ABEL       KIMBERLEY        26600  8866.66667
      FAY        PAT               6000        6000
      **DAVIES     TRINA            11700        2925**

我做错了什么?更多信息如下:

EMPLOYEE_ID FIRSTNAME LASTNAME LASTNAME JOB_ID JOB_ID MANAGER_ID DEPARTMENT_ID

代码语言:javascript
复制
    100 STEVEN     KING       AD_PRES         24000                       90
    101 NENA       KOCHAR     AD_VP           17000        100            90
    102 LEX        DE HAAN    AD_VP           17000        100            90
    103 ALEXANDER  HUNOLD     IT_PROG                      101            60
    104 BRUCE      ERNST      IT_PROG          6000        102            60
    107 DIANA      LORENTZ    IT_PROG          4200        103            60
    124 KEVIN      MOURGOS    ST_MAN           5800        100            50
    141 TRINA      RAJS       ST_CLERK         3500        124            50
    142 CURTIS     DAVIES     ST_CLERK         3100        124            50
    143 RANDALL    MATOS      ST_CLERK         2600        124            50
    144 PETER      VARGAS     ST_CLERK         2500        124            50

EMPLOYEE_ID FIRSTNAME LASTNAME LASTNAME JOB_ID JOB_ID MANAGER_ID DEPARTMENT_ID

代码语言:javascript
复制
    149 ELENI      ZLOTKEY    SA_MAN          10500        100            80
    174 ELLEN      ABEL       SA_REP          11000        149            50
    176 JONATHAN   TAYLOR     SA_REP           8600        149            80
    178 KIMBERLEY  GRANT      SA_REP           7000        149
    200 JENNIFER   WHALEN     AD_ASST          4400        101            10
    201 MICHAEL    HARTSTEIN  MK_MAN          13000        100            20
    202 PAT        FAY        MK_REP           6000        201            20
    205 SHELLEY    HIGGINS    AC_MGR          12000        101           110
    206 WILLIAM    GIETZ      AC_ACCOUNT       8300        205           110
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 04:53:51

如果您提供了正确的数据,即运行查询/查询之前的数据,并说明为什么应该是17500(和)和3500(avg),那么您就有更多的机会获得答案。

在第一个查询中,您是基于JOB_ID进行分组的。这意味着对于所有类似的JOB_IDs (在SUM (工资)情况下),它将选择工资列的值,并对每个不同的JOB_ID的值进行求和。

示例:

代码语言:javascript
复制
JOB_ID SALARY
   1    200
   2    300
   1    150
   2    100
   3    270

如果运行以下查询:

代码语言:javascript
复制
Select JOB_ID,SUM(SALARY) FROM Table GROUP BY JOB_ID

输出:

代码语言:javascript
复制
JOB_ID SALARY
  1     350
  2     400
  3     270
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51605415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档