동일한 구조의 두 테이블이 있습니다.
두 행의 모든 행이 같은지 어떻게 확인할 수 있습니까?
즉 첫 번째 테이블의 각 행이 다른 테이블에 있고 그 반대의 경우도 마찬가지입니다.두 테이블이 같은지 확인하십시오.
2
A
답변
0
이것은 흥미로운 것입니다. 나는이 작업을 수행 할 수있는 더 나은 또는 간단한 방법이 있다면 모르겠지만 이런 식으로 뭔가를 작동 할 수 있습니다 :
당신이 두 개의 테이블 T1과 T2를 가정하면, 그들은 각각 두 개의 C1 열 및 C2
이create view t1_counts
as select c1, c2, count(*) as num
from t1
group by c1, c2;
create view t2_counts
as select c1, c2, count(*) as num
from t2
group by c1, c2;
select t1_counts.c1, t1_counts.c2, t1_counts.num, t2_counts.num
from t1_counts full outer join t2_counts on (t1_counts.c1 = t2_counts.c1 and t1_counts.c2 = t2_counts.c2)
where t1_counts.num != t2_counts.num;
두 테이블이 동일하면 출력이 비어 있습니다.
1
제프의 블로그에서 나온 해결책은 하이브와 관련이 있습니다. http://weblogs.sqlteam.com/jeffs/archive/2004/11/10/2737.aspx.
"기본 아이디어는 다음과 같습니다. 우리가 모든 열에 대해 두 테이블의 합집합을 만들면 두 테이블이 동일하면 모든 그룹의 수가 COUNT (*)가 2가됩니다. GROUP BY 절의 모든 열과 완전히 일치하지 않는 경우 COUNT (*)는 1이 될 것이고 우리가 원하는 것입니다. 또한 UNION의 각 부분에 열을 추가하여 각 행이 어느 테이블에 있는지 알려줄 필요가 있습니다 에서 그렇지 않으면 어떤 행이 어떤 표에서 왔는지 구별 할 방법이 없습니다. "
중복을 처리하기위한 개선 된 솔루션은 주석으로 게시 : http://weblogs.sqlteam.com/jeffs/archive/2004/11/10/2737.aspx#3155이 (는 댓글이 사용자 "페리"에 의해 원래 배치에서와 같이 코드를 재현)
SELECT MIN(TableName) as TableName, COL1, COL2, COL3 ...
FROM
(
SELECT 'Table A' as TableName, COUNT(*) NDUPS, A.COL1, A.COL2, A.COL3, ...
FROM Table1 A GROUP BY ID, COL1, COL2, COL3 ...
UNION ALL
SELECT 'Table B' as TableName, COUNT(*) NDUPS, B.COL1, B.COl2, B.COL3, ...
FROM Table2 B
GROUP BY ID, COL1, COL2, COL3 ...
) tmp
GROUP BY NDUPS, ID, COL1, COL2, COL3 ...
HAVING COUNT(*) = 1
ORDER BY ID
관련 문제
- 1. 두 배열이 같은지 확인하십시오.
- 2. 개미 : 두 숫자가 같은지 확인하십시오.
- 3. 두 이진 트리가 같은지 확인하십시오.
- 4. 두 개의 쿼리가 같은지 확인하십시오.
- 5. Z3 두 표현식이 같은지 확인하십시오
- 6. 코코아에서 두 파일이 같은지 확인하십시오.
- 7. 두 개의 MovieClip이 같은지 확인하십시오.
- 8. 두 일반 유형이 같은지 확인하십시오.
- 9. COM 포인터가 같은지 확인하십시오.
- 10. C++에서 두 유형이 같은지 확인하십시오.
- 11. 텍스트 상자의 두 값이 같은지 확인하십시오.
- 12. 두 파이썬 정규식 패턴이 같은지 확인하십시오
- 13. 두 개의 jar 클래스가 같은지 확인하십시오.
- 14. 두 개의 2D 배열이 같은지 확인하십시오.
- 15. 두 개의 숫자 목록이 같은지 확인하십시오.
- 16. 세트의 두 숫자가 nlgn에서 x와 같은지 확인하십시오
- 17. 두 개의 워크 시트가 같은지 확인하십시오.
- 18. php - 두 배열의 값이 같은지 확인하십시오.
- 19. 두 배열의 일부가 Java에서 같은지 확인하십시오
- 20. PHP 단어가 같은지 확인하십시오.
- 21. Bool이 정수와 같은지 확인하십시오.
- 22. 문자열이 정규식과 같은지 확인하십시오.
- 23. 모든 숫자가 같은지 확인하십시오.
- 24. Javascript 난수가 마지막과 같은지 확인하십시오.
- 25. Scheme : 비교/두리스트가 같은지 확인하십시오.
- 26. 일부 십진수 값이 같은지 확인하십시오.
- 27. 배열의 값이 서로 같은지 확인하십시오.
- 28. javascript var이 문자열과 같은지 확인하십시오.
- 29. 2 가지 유형이 같은지 확인하십시오.
- 30. 목록의 모든 항목이 같은지 확인하십시오.
당신이 요약을 게시 할 수 있습니다 각 링크마다? 링크가 끊어지면 정보가 손실되지 않습니다. – fxm