이 질문과 비슷한 질문이 여기까지 왔지만 지금까지는 내 코드에 제공된 대답을 구현할 수 없었습니다. 다른 열이 동일하게 유지되고 내 코드에 INNER JOIN이있는 동안 한 열의 중복 만 구별하기를 원하기 때문입니다. INNER JOIN은 대부분의 제공된 응답에서 PARTITION 함수를 사용하기 때문에 문제가 있습니다. SQL을 처음 접하는 초보자이기 때문에 이것을 통합하는 방법을 모르겠습니다. PARTITION이있는 INNER JOIN을 사용하면 도움이 될 것입니다.SQL 쿼리 - 다른 열의 고유 한 값 (INNER JOIN 포함)에 대해 하나의 열에 서 구별
파이썬에서이 내보내기를 수행 할 수있는 반면 (현재 원하는 출력을 사용할 예정 임)이 코드는 현재 2 백만 행을 출력하므로 작업과 확인에 많은 시간이 소요됩니다. 여기에 코드입니다 : 사용
SELECT client_ip_address, language_enum_code
FROM vw_user_session_log AS usl
INNER JOIN vw_user_topic_ownership AS uto
ON usl.user_id = uto.user_id
가까이 원하는 출력을하지만, 오히려 그들 모두를 제거 뒤에 하나 개의 중복 행을 떠나는 것보다 저를 얻는 대신 SELECT의 DISTINCT SELECT. 중복 행 중 하나를 유지하면서이 기능을 사용하는 것에 대한 조언이 선호됩니다. 나는 데이터베이스에 대한 읽기 전용 연결이므로 DELETE FROM 접근법은 here이 가능할 것입니다. 쿼리 출력에서 임시 쿼리 가능 테이블을 만들 수 있다면 가능하다고 생각하지 않고 서투른 것처럼 보입니다.
원시 데이터 샘플 :
user_id: client_ip_address: language_enum_code: (other stuff...)
4 194:4:62:18 107
2 101:9:23:34 14
3 180:4:87:99 15
3 194:4:62:18 15
4 166:1:19:27 107
2 166:1:19:27 14
원하는 결과는 : 당신이 볼 수 있듯이
user_id: client_ip_address: language_enum_code: (other stuff...)
4 194:4:62:18 107
2 101:9:23:34 14
3 180:4:87:99 15
, 어떤 ID-열거 조합 한 번만 발생하는 필터링해야합니다. 이것이 ip-enum 조합이 아닌 이유는 여러 사용자가 동일한 IP 주소를 통해 연결할 수 있기 때문입니다.
는 원시 데이터의 샘플 및 예상 결과를 제공 – Alex
완료를 여전히 찾고하시기 바랍니다 이상적인 대답. –
올바르게 이해했다면 그 조합에 대해 임의의 client_ip_address가있는 고유 한 user_id, language_enum_code를 원하십니까? '원하는 결과'에서 데이터를 버렸기 때문에 (예 : '166 : 1 : 19 : 27'). 보관할 IP 주소와 버릴 IP 주소를 어떻게 선택 했습니까? – Matt