사실, 이것은 SQL에만 국한된 것이 아니며 "대화 패턴"이 올바른 이름인지는 의심 스럽지만 더 나은 캡션을 생각할 수는 없습니다.SQL에서 "대화"패턴을 어떻게 탐지합니까?
단순화하기 위해 방대한 int 스트림이 있다고 가정 해보십시오. 작업은 A.{1;max_n}A
패턴을 감지하는 것입니다. int가 n (> 0) 다른 int가오고 그 다음 원래의 int가 다시 오는 경우 패턴을 충족시킵니다. n < = max_n입니다.
예 : max_n < = 3 패턴 값 4
대한 만족 그래서 여기
...
1
4 <--
7 \
3 > n = 3
3/
4 <--
2
...
상기 INT 4
는, 그 사이 임의의 int (3)을 반복한다.
질문은 어떻게 데이터의 거대한 덤프에서 어떤 정수가이 패턴을 따르는 지 감지 할 수 있습니까? 대부분 알고리즘 자체에 관심이 있지만 SQL 또는 C#의 예제도 환영합니다.
내가 생각한 순진한 아이디어는 먼저 목록이나 모든 고유 한 int를 수집 한 다음 각 패턴에 대해 간단한 방식으로 패턴을 확인하는 것이지만 성능 병목 현상을 일으킬 수 있습니다.
는 아마도 숫자 테이블을 사용하여 ... –
미안해하는 숫자 테이블은 무엇인가? – mafu
SQL은 집합에서 작동합니다. 출력 집합의 행을 비교하기 위해 실제로 설계되지 않았으므로 이러한 종류의 분석에는 적합하지 않습니다. –