Oracle 如何使用select对多个列中的重复值进行计数

Oracle 如何使用select对多个列中的重复值进行计数,oracle,validation,plsql,plsqldeveloper,Oracle,Validation,Plsql,Plsqldeveloper,我有位置表表: CODE_POSITION NAME GRADE VALIDITY DATE ELIMINATION LEVEL 1 AAAA01 MANAGER 10 01/03/2016 31/12/2999 HIGH 2 BBBB01 ANALYST 09 01/03/2016 31/12/2999 LOW 3 CCCC01

我有位置表表:

     CODE_POSITION   NAME      GRADE    VALIDITY    DATE ELIMINATION    LEVEL
1    AAAA01          MANAGER   10       01/03/2016  31/12/2999          HIGH
2    BBBB01          ANALYST   09       01/03/2016  31/12/2999          LOW
3    CCCC01          STAFF     05       01/03/2016  31/12/2999          HIGH
4    BBBB01          ANALYST   09       01/03/2016  31/12/2999          HIGH
5    AAAA01          MANAGER   10       01/03/2016  31/12/2999          LOW
6    DDDD01          INTERN    01       01/03/2016  31/12/2999          HIGH
7    DDDD01          INTERN    01       01/07/2016  31/12/2999          LOW
我使用此查询查找并计算相同的代码位置:

select code_position, count(code_position)
from position_table
group by code_position
having count(code_position) > 1;
这就是结果:

    CODE_POSITION   COUNT(CODE_POSITION)
1   AAAA01          2
2   BBBB01          2
3   DDDD01          2
注意:

  • AA01代码重复两次,有效期和等级相同
  • BB01代码重复两次,有效期和等级相同
  • DD01代码重复两次,有效期不同

  • 现在我需要检查哪个代码位置被重复,以及它们是否具有相同的有效期日期和等级。例如:AAAA01和BBBB01。

    您可以在
    分组方式中使用多个条件。如果使用更多条件,则所有条件都将进行比较,如果相同,则仅分组

    SELECT
        code_position,
        COUNT(code_position),
        validity,
        grade
    FROM position_table
    GROUP BY
        code_position,
        validity,
        grade
    HAVING COUNT(code_position) > 1 
    

    您可以在
    分组依据中使用多个条件。如果使用更多条件,则所有条件都将进行比较,如果相同,则仅分组

    SELECT
        code_position,
        COUNT(code_position),
        validity,
        grade
    FROM position_table
    GROUP BY
        code_position,
        validity,
        grade
    HAVING COUNT(code_position) > 1 
    

    这是mysql还是oracle?请贴上相应的标签!只需在select和group by上添加这些列。好的,但现在我必须在条件中包括最大分数和最大有效性,我该怎么做@豪尔赫-campos@dcieslak已经回答了。这是mysql还是oracle?请贴上相应的标签!只需在select和group by上添加这些列。好的,但现在我必须在条件中包括最大分数和最大有效性,我该怎么做@豪尔赫-campos@dcieslak已经回答了。如果我想在同一个查询中验证最大学位和最大日期,我该怎么办@dcieslak@spikeTJ学位是什么栏目?你指的是什么日期?你们桌上有两个。如果您知道这些列,只需将max(grade)、max(date)添加到选择列表中。如果要在同一查询中验证最大程度和最大日期,我该怎么办@dcieslak@spikeTJ学位是什么栏目?你指的是什么日期?你们桌上有两个。如果您知道这些列,只需将max(grade)、max(date)添加到选择列表中即可。