Diverser Vergleich einer undefinierten Zeichenfolge abragen Powershell bzw. Oracle SQL

Mitglied: Kraehahn

Kraehahn (Level 1) - Jetzt verbinden

14.08.2017, aktualisiert 08:56 Uhr, 927 Aufrufe, 4 Kommentare

Hallo Community,

ich bin an einer Auswertung von verschiedenen Artikeln aus unserer Datenbank
und müsste einen Vergleich einer Liste durchführen, der folgendes macht:

Wir haben mehrer Artikel, die die gleiche Bezeichnung, jedoch eine andere Größe besitzen.
Z.B.
H07V-K 1x1,5 GR
H07V-K 1x1,5 SW
H07V-K 1x1,5 OR
H07V-K 1x1,5 WS
H07V-K 1x1,5 GG

H07V-K 1x2,5 GR
H07V-K 1x2,5 SW
H07V-K 1x2,5 OR
H07V-K 1x2,5 WS
H07V-K 1x2,5 GG

NYY-J 3X1,5RM
NYY-J 3X1,5RE
NYY-J 3X2,5RM
NYY-J 3X2,5RE

etc.

Also es gibt immer mehrere gleiche Bezeichnungen.
Dieses Muster kommt jedoch sehr oft vor. Sprich ich suche nach einem Vergleichsoperater, dem ich zuvor nicht sagen muss,
nach welchem Ausgangswert er suchen soll.
TrimEnd, um nur die Enden zu kürzen bringt nur bei den ersten beiden Artikelgruppen etwas, bei den restlichen jedoch nicht.
Mit -Match Sucher oder Group-Object, funktioniert es auch nicht. Bei Match, muss man ja einen Ausgangswert angeben
und Group-Object funktioniert auch nicht, da zwar der Teil "H07V-K" oft vorkommt, der Teil 1x1,5 am Ende jedoch immer variiert.

Gibt es hier vielleicht etwas, um eine Suche durchzuführen die da etwa lautet:
Scanne die ganze List, schaue welche Zeichenfolgen ungefähr öfters vorkommen und gib mir an, wie oft dies vorkommt.

Möglichkeit neben Powershell liegt noch in Oracle SQL.

Vielen vielen Dank im Voraus!

Viele Grüße
Kraehahn
Mitglied: 133883
133883 (Level 2)
14.08.2017, aktualisiert um 10:18 Uhr
und Group-Object funktioniert auch nicht, da zwar der Teil "H07V-K" oft vorkommt, der Teil 1x1,5 am Ende jedoch immer variiert.
Du scheinst nicht zu wissen daß du bei group-object auch geschweifte Klammern ({}) und Regex für eine Gruppierung verwenden kannst ;-) face-wink.
Und bei Regex braucht man keinen festen Begriff sondern arbeitet mit Mustern. Wobei es hier möglicherweise ausreicht einen Split am Leerzeichen zu machen wenn alle Artikel auf diesem Muster wie ml oben basieren.

Gruß
Bitte warten ..
Mitglied: Kraehahn
14.08.2017 um 15:12 Uhr
Hey,
vielen Dank für deine Antwort!

Ich habe mal mit deinen Ansätzen nun etwas gearbeitet aber festgestellt,
dass ich damit nicht zum Ziel komme.
Das mit dem Split hat schonmal ganz gut funktioniert.
Bei den Bezeichnungen

H07V-K1x1,5
NYM-J3x1,5
NYY-J5x6

gibt es das Muster, dass diese immer definiert sind durch '-' und 'x'.
Also habe ich nun einfach beide Zeichen durch 20 Punkte ersetzt und lasse mir mit Substring nur insgesamt 20 Zeichen anzeigen und füge das Ganze dann mit Group-Object zusammen.
Somit erhalte ich dann
H07V........
NYM.........
NYY..........

was mir in dem Fall auch reicht.
Aber der Großteil der Artikel verläuft nach keinem solchen Muster.
Hier steht einfach nur
US3K20FT
US3K40FT
US3K60FT
WJ-DM20/2X6
WJ-DM20/4X5
WJ-DM20/5X4
SSM20LA
SSM25FV
SSM40FV

Im Grunde genommen gibt es immer mehrere ähnliche Muster, sprich 10 Artikel beginnen mit US3K, andere 10 mit WJ-DM20.
Es geht aber hier um 10.000 Artikel.
Wenn ich mir die nun einzeln anschauen und definieren müsste, wäre ich von Hand ja schneller fertig.

Deshalb suche ich mehr nach einem Operator, der quasi sagt: prüfe jeden Artikel der Liste auf Zeichenfolgen von mehr als x-Zeichen, die mehrmals in der ganzen Liste auftreten.
Ohne, dass ich vorher ein Muster definieren muss, wie der Artikel bzw. die Zeichenfolge auszusehen hat (wie gesagt bei 10.000 Artikeln unrentabel).

Vielleicht gibt es sowas auch garnicht oder übersteigt schlichtweg meine Fähigkeiten.

Trotzdem nochmal und schonmal danke für weitere Antworten!
Bitte warten ..
Mitglied: 133883
133883 (Level 2)
15.08.2017, aktualisiert um 18:55 Uhr
Wenn du überhaupt keine Liste mit Mustern hast, ist das fast nicht möglich oder wenn dann nicht 100% zuverlässig, denn wer kann schon erraten welche Artikel zusammengehören wenn sich die Bezeichnungen mal mehr unterscheiden du müsstest also sowieso alle Artikel zumindest nachkontrollieren. Was man machen kann ist ein Änlichkeitsvergleich (Levenshtein-Distanz) bei dem man definiert wie viele Buchstaben sich max. ändern dürfen wenn man zwei Namen vergleicht, das wäre noch machbar. Dafür gibt es schon Powershell-Funktionen.

Warum, wenn das 10000 Artikel sind, wurden die Artikel nicht mit Fremdschlüssel versehen der die Gruppe definiert? Welcher Hempel macht denn heute noch sowas?? Anfänger ohne Datenbankerfahrung?!
Bitte warten ..
Mitglied: Kraehahn
18.08.2017 um 08:52 Uhr
Hallo nochmal,

und danke nochmals für deine Antwort! Die Funktion werde ich mir mal anschauen.

Es ist nicht eine Liste mit 10.000 Artikeln sondern genau genommen sind diese in 8 verschiedene Artikel-Gruppen unterteilt.
Aber trotzdem sinds dann manchmal noch bis zu 2.000 Artikel pro Gruppe. Und 8x 1.000 - 2.000 Artikel manuell auswerten oder 1x 10.0000 ist ja der gleiche Aufwand. Aber ich schaue es mir mal an.

Vielen Dank nochmal!!

Viele Grüße
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
HomeOffice Pflicht - Büroaustattung vom Arbeitgeber?
h45okeg493sVor 18 StundenFrageOff Topic34 Kommentare

Hallo zusammen, aufgrund der HomeOffice Situation wollte ich mal rumfragen, muss der Arbeitgeber neben der Hardware wie Notebook, etc. auch Büroausstattung wie Bürostühle zur ...

Server-Hardware
Gebrauchte Server von eBay-Kleinanzeigen
dh2411Vor 1 TagFrageServer-Hardware15 Kommentare

Hallo zusammen, neulich war ich auf eBay-Kleinanzeigen unterwegs und dort wurden mir einige Server vorgeschlagen. Ich habe dort auch meinen aktuellen Home-Server recht günstig ...

Backup
Backupmöglichkeit Teamviewer
gelöst greenhorn1Vor 1 TagFrageBackup16 Kommentare

Hallo, ich habe bei meiner Teamviewer Lizenz die Möglichkeit ein Backup des PC´s durchzuführen. Leider funktioniert das nicht! Nach Rückfrage an Teamviewer erhielt ich ...

Firewall
Sonicwall: Angreifer sind über eine SMA 100 ins eigene Netzwerk eingedrungen
Looser27Vor 1 TagInformationFirewall1 Kommentar

Bei SonicWal sind nach eigenen Angaben wohl Angreifer mit Hilfe von Zero-Day-Attacken ins eigene Netzwerk eingedrungen. Nach ersten Analysen handelt es sich dabei um ...

Webentwicklung
Webseite LAMP auf USB-Stick mit Minimalsystem?
mirmichVor 1 TagFrageWebentwicklung11 Kommentare

Hallo, eine Webseite soll "archiviert" aber lokal lauffähig bleiben. Die "neue Webseite" läuft auf einer aktuellen PHP Version - die "alte Webseite" auf einer ...

Grafikkarten & Monitore
Zweiter Bildschirm geht sporadisch immer aus?!
GeronimooVor 1 TagFrageGrafikkarten & Monitore8 Kommentare

Moin zusammen, ich habe ein Problem mit meinem 2. Monitor und zwar geht dieser sporadisch immer für 1-2 Sekunden aus oder flackert ein bisschen ...

Switche und Hubs
Kurioses Problem IP Adresse ändern am Cisco SG350 10p
gelöst Xaero1982Vor 15 StundenFrageSwitche und Hubs16 Kommentare

Moin Zusammen, ich habe hier einen neuen Cisco SG350 10p. Wie schon so oft wollte ich ihm eine neue IP geben, also gehe ich ...

TK-Netze & Geräte
Panasonic NS700 - Endgeräte klingeln nicht, bzw. Gespräche kommen nicht an
gelöst jensgebkenVor 14 StundenFrageTK-Netze & Geräte24 Kommentare

Hallo Gemeinschaft, nun habe ich mir für meine gebrauchte Anlage doch noch eine gebrauchte BRI gekauft - Installation klappte soweit auch - raustelefonieren kann ...