(MD5)-Hash ueber mehrere records

  • Ich ueberlege gerade wie ich folgendes Problem loesen soll: Ich brauche eine Funktion, die fuer eine ausgewaehlte Anzahl von Parametern ermittelt, ob die restlichen Spalten (als Set gesehen) genau gleich sind. Wobei es auch auf die Sequenz ankommt.

    Also zB:

    Code
    Kunde  Tag    ProduktGekauft
    K1     T1     P1
    K2     T1     P2
    K3     T1     P1
    K4     T1     P1
    K1     T2     P2
    K2     T2     P1
    K3     T2     P2
    K4     T2     P2
    K4     T3     P3

    In diesem Scenario waere das Kaufverhalten nur von Kunde K1 und K3 gleich (K2 hat die Produkte in der falschen Reihenfolge gekauft, und K4 hat auch am Tag3 Produkt3 gekauft.

    Meine Loesung waere folgende:

    • GROUP BY Kunde
    • ORDER BY Tag
    • Concat & Hash die Produkte (in der richtigen Reihenfolge)

    Es gibt zu dem Thema paar Loesungsansaetze (ich brauch das ganze in MSSQL):

    Das Problem mit PIVOT, XMLPATH, etc. ist, dass die Anzahl der Kunden und Tage variabel ist.

    Ausser einer stored procedure, die in etwa so funktionieren koennte hab ich keine viel besseren Ideen:

    SQL
    SELECT Kunde, GetSetHash(Produkt, Tag) AS Hash
    FROM Kaufverhalten
    GROUP BY Kunde

    Wobei GetSetHash(HashSource, OrderBy) ein char(32) = MD5 hash zurueckliefert. HashSource und OrderBy sollten eine beliebige Anzahl von Spalten sein koennen.

    Hat jemand eine bessere Idee? Wie gesagt, MSSQL ist vorgegeben.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Leider kann ich dir keine konkrete Antwort geben - aber hast du dir schon mal die Analysis Funktionen angeschaut?
    http://msdn.microsoft.com/en-us/library/ms175462.aspx

    Zitat

    By using the Microsoft Sequence Clustering algorithm on this data, the company can find groups, or clusters, of customers who have similar patterns or sequences of clicks. The company can then use these clusters to analyze how users move through the Web site, to identify which pages are most closely related to the sale of a particular product, and to predict which pages are most likely to be visited next.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!