Ich habe eine Datenstruktur von Schlüsselwertpaaren und ich möchte "GROUP BY" Wert implementieren. Beide Schlüssel und Werte sind Zeichenfolgen.Wie funktioniert "GROUP BY" mathematisch?
Also was ich getan habe war, dass ich jedem Wert (String) eine eindeutige "Primzahl" gegeben habe. Dann habe ich für jeden Schlüssel die Multiplikation aller Primzahlen gespeichert, die mit verschiedenen Werten eines bestimmten Schlüssels verknüpft sind. Also wenn Schlüssel "Anirudh" Werte "x", "y", "z" hat, dann speichere ich die Zahl M (Schlüssel) = 2 * 3 * 5 = 30. Später, wenn ich eine Gruppe mit einem bestimmten Wert "x" (sagen wir) machen möchte, dann iteriere ich einfach über alle Schlüssel und teile die M (Schlüssel) durch die Primzahl, die mit "x" verknüpft ist. Ich überprüfe dann, ob der Rest 0 ist und wenn er Null ist, dann ist dieser bestimmte "Schlüssel" ein Teil der Gruppe um für den Wert "x".
Ich weiß, dass dies der komischste Weg ist, es zu tun. Manche Leute sortieren die Schlüsselwertpaare (sortiert nach Werten). Ich hätte auch eine andere Tabelle (Hash-Tabelle) erstellen können, die bereits nach "Werten" gruppiert ist. Ich möchte also eine bessere Methode kennen als meine (es müssen viele sein). In meiner Methode als die Anzahl der eindeutigen Werte für einen bestimmten Schlüssel erhöht sich auch das Produkt der Primzahl (das zu exponentiell).
Ist das eine SQL-Frage? Sie haben "eine Datenstruktur von Schlüssel/Wert-Paaren". Ist das eine Datenbanktabelle? Welche Art von Ausgabe möchten Sie? Ist es anders als SQL GROUP BY? – Thilo
Es ist eigentlich keine Datenbanktabelle. Ich halte es für eine logische Datenstruktur. Ja! das gleiche wie "SQL GROUP BY". Also suche ich nach einer Lösung, die unabhängig von SQL ist, genauer gesagt, einem GROUP BY-Algorithmus. – Durin