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
注意:
现在我需要检查哪个代码位置被重复,以及它们是否具有相同的有效期日期和等级。例如: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)添加到选择列表中即可。