중복 된 입금 레코드에 대해 테이블을 쿼리해야합니다. 동일한 금액의 특정 금액 창에서 한 현금 터미널에서 두 개의 입금이 중복 레코드로 간주됩니다. 이제 쿼리에 대한 작업을 시작했으나이 작업을 '제대로'수행하기위한 조언이나 제안을 주시면 감사하겠습니다.중복 레코드를 찾는 효율적인 쿼리
1
A
답변
2
일반적으로, 당신은 자기가 같은 테이블에 조인 수행 넣어 줄 당신의 "중복" 조인 조건의 기준.
예.
SELECT
*
FROM
Transactions t1
inner join
Transactions t2
on
t1.Terminal = t2.Terminal and
t1.Amount = t2.Amount and
DATEDIFF(minute,t2.TransactionDate,t1.TransactionDate) between 0 and 10 and
t1.TransactionID > t2.TransactionID /* prevent matching the same row */
2
단순 집계
SELECT
col1, col2, col3, ...
FROM
MyTable
GROUP BY
col1, col2, col3, ...
HAVING
COUNT(*) >= 2
사용자의 신원/키/PK 컬럼을 포함하지 마십시오 :이 행과 총 엉망마다 고유합니다.
그런 다음 "유지"할 3 개 중복으로, 물론 그SELECT
col1, col2, col3, ...,
MAX(IDCol) AS RowToDelete,
MIN(IDCol) AS RowToKeep
FROM
MyTable
GROUP BY
col1, col2, col3, ...
HAVING
COUNT(*) >= 2
에 MAX 또는 MIN을 제거하거나 유지해야 할 행을 얻으려면.
편집 :
시간 창 내에서 행의 경우, 자기를 사용하여 가입 또는 창/순위 기능
관련 문제
- 1. 중복 데이터를 찾는 MySQL 쿼리 최적화
- 2. 중복 레코드를 반환하십시오.
- 3. IDS가있는 테이블에서 레코드를 가져 오는 가장 효율적인 쿼리
- 4. 문자열 오버랩을 찾는 효율적인 알고리즘
- 5. 두 조건을 사용하여 레코드를 찾는 간단한 SQL Server 쿼리 설명
- 6. 고아 레코드를 수정하는 UPDATE 쿼리
- 7. 시간을 기준으로 중복 레코드를 제거했습니다.
- 8. DataGrid에서 중복 레코드를 무시하는 방법?
- 9. 관련 제출물을 찾는 효율적인 알고리즘
- 10. 효율적인 SQL 쿼리
- 11. 효율적인 SQL 쿼리
- 12. 효율적인 LINQ 쿼리
- 13. mysql에서보다 효율적인 쿼리
- 14. 레일 : 마지막에 레코드를 찾는 방법?
- 15. SQL 쿼리 중복 제거 도움말
- 16. 중복 필드 콤보를 찾는 방법
- 17. 중복 된 항목 찾는 법?
- 18. 중복 목록에 대한 쿼리
- 19. 중복 레코드가있는 SQL 쿼리
- 20. 중복 장고 쿼리 집합?
- 21. 효율적인 Oracle/PL_SQL 쿼리 작성
- 22. XmlPad 중복 노드를 찾는 XPath 문제
- 23. LinQ 중복 레코드를 세부 테이블로 업데이트
- 24. 중복 레코드를 1 개의 필드에 병합하십시오.
- 25. SQL Server에서 중복 레코드를 삭제 하시겠습니까?
- 26. SQL Server에서 중복 레코드를 표시하지 않는 방법
- 27. 데이터베이스에 중복 레코드를 유지하는 방법은 무엇입니까?
- 28. 그리드에서 중복 레코드를 제거하는 방법은 무엇입니까?
- 29. SubSonic .Paged() 쿼리가 중복 레코드를 반환합니다
- 30. 중복 된 레코드를 생성하는 SELECT의 SQL INSERT
정확한 중복을 찾는 것이 좋습니다. –
감사하지만, 두 레코드의 입금 시간 차이를 그룹화하는 것은 어렵습니다. @Damien_The_Unbeliever는보다 유연한 쿼리를 제공합니다. – ProfK