키 값 쌍의 데이터 구조가 있고 "GROUP BY"값을 구현하고 싶습니다. 키와 값은 모두 문자열입니다."GROUP BY"를 수학적으로 수행하는 방법은 무엇입니까?
그래서 내가 한 일은 내가 모든 값 (문자열) 고유의 "소수"를 준이었다. 그런 다음 모든 키에 대해 특정 키에있는 다른 값과 관련된 모든 소수의 곱셈을 저장했습니다. "Anirudh"키에 "x", "y", "z"값이 있으면 M (Key) = 2 * 3 * 5 = 30으로 저장합니다. 나중에 특정 값 "x"(말하기)로 그룹을 만들고 싶으면 모든 키를 반복하고 "x"와 연관된 소수로 M (키)을 나눕니다. 그런 다음 나머지가 0인지 확인하고 0 인 경우 특정 "키"는 값 "x"에 대한 그룹의 일부입니다.
이것이 가장 이상한 방법이라고 생각합니다. 어떤 사람들은 키 값 쌍 (값으로 정렬)을 정렬합니다. 이미 "값"으로 그룹화 된 다른 테이블 (해시 테이블)을 만들 수도있었습니다. 그래서 저는 제보다 나은 방법을 알고 싶습니다 (많은 사람들이 있어야합니다). 내 방법에서는 특정 키에 대한 고유 값의 수가 증가함에 따라 소수의 곱도 증가합니다 (즉, 기하 급수적으로 증가합니다). (하지만 훨씬 더 많은 계산) 비트 벡터 또는 2. 먼저 값의 제곱의 합보다 여기에 요구되는 내용 진짜 생각이 없다, 그러나 이것은 비슷한 소리가 나는 경우에
SQL 질문입니까? 키/값 쌍의 데이터 구조가 있습니다. 그것은 데이터베이스 테이블입니까? 어떤 종류의 결과물을 원하십니까? 그것은 SQL GROUP BY와 다른가요? – Thilo
실제로 데이터베이스 테이블이 아닙니다. 논리적 인 데이터 구조라고 생각합니다. 네! "SQL GROUP BY"와 동일합니다. 그래서 저는 SQL이 제공하는 것과는 독립적 인 솔루션 인 GROUP BY 알고리즘을보다 구체적으로 찾고 있습니다. – Durin