如何使用 select 计算多个列中的重复值
How to count repeat values in multiples columns with a select
我有 position_table 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
注:
- AAAA01 代码重复两次,具有相同的有效期和等级。
- BBBB01 代码重复两次,具有相同的有效期和等级。
- DDDD01 代码重复两次且有效期不同。
现在我需要检查重复了哪些 code_position 以及它们是否具有相同的 validity 日期和 等级到。喜欢:AAAA01 和 BBBB01。
您可以在 GROUP BY
中使用多个条件。如果您使用更多条件,所有条件将进行比较,如果相同则仅分组。
SELECT
code_position,
COUNT(code_position),
validity,
grade
FROM position_table
GROUP BY
code_position,
validity,
grade
HAVING COUNT(code_position) > 1
我有 position_table 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
注:
- AAAA01 代码重复两次,具有相同的有效期和等级。
- BBBB01 代码重复两次,具有相同的有效期和等级。
- DDDD01 代码重复两次且有效期不同。
现在我需要检查重复了哪些 code_position 以及它们是否具有相同的 validity 日期和 等级到。喜欢:AAAA01 和 BBBB01。
您可以在 GROUP BY
中使用多个条件。如果您使用更多条件,所有条件将进行比较,如果相同则仅分组。
SELECT
code_position,
COUNT(code_position),
validity,
grade
FROM position_table
GROUP BY
code_position,
validity,
grade
HAVING COUNT(code_position) > 1