En fait, ce n'est pas spécifique à SQL, et je doute que le "modèle de conversation" soit le nom correct, mais je ne pouvais pas penser à une meilleure légende.Comment détecter le modèle "conversation" dans SQL?
Pour simplifier, imaginez que vous avez un vaste flux d'ints. La tâche consiste à détecter un motif A.{1;max_n}A
: Un int vérifie le motif s'il est suivi de n (> 0) autres ints, puis de nouveau l'int original, tandis que n < = max_n.
Exemple:
...
1
4 <--
7 \
3 > n = 3
3/
4 <--
2
...
Ici, l'int 4
est répétée avec 3 ints arbitraires entre les deux, de manière à max_n < = 3, le motif est satisfaite pour la valeur 4
. La question est, comment puis-je détecter quels entiers dans l'énorme vidage de données suivent ce modèle? Je m'intéresse surtout à l'algorithme lui-même, mais un exemple en SQL ou en C# serait également le bienvenu. L'idée naïve que je suis venu avec est de rassembler d'abord une liste ou tous les ints distincts, puis vérifier le modèle d'une manière directe pour chacun d'eux, mais cela conduirait à un goulot d'étranglement de la performance.
peut-être utiliser ... –
désolé un tableau de chiffres, ce qui est un tableau de chiffres? – mafu
SQL fonctionne sur des ensembles: il n'est vraiment pas conçu pour comparer des lignes dans l'ensemble de sortie, c'est donc un mauvais choix pour ce type d'analyse. –