我有 position_table 表:
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
我使用此查询来查找和计算相同的code_position:
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
注意:
现在我需要检查重复哪个 code_position ,以及它们是否具有相同的有效期日期和等级。喜欢:AAAA01和BBBB01。
答案 0 :(得分:4)
您可以在GROUP BY
中使用多个条件。如果您使用更多条件,则将对所有条件进行比较,并且如果相同则进行分组。
SELECT
code_position,
COUNT(code_position),
validity,
grade
FROM position_table
GROUP BY
code_position,
validity,
grade
HAVING COUNT(code_position) > 1