So filtern Sie einen Datensatz mithilfe eines separaten Datensatzes mit Tausenden von IDs (Unterabfrage, Skripterstellung)Ich habe einen „GROSSEN“ Datensatz mit mehreren Millionen Zeilen. Jede Zeile verfügt über ein bestimmtes IDENT-Feld. IDENT kann mehrfach vorkommen. Ich habe einen anderen, kleineren Datensatz „SMALL“, der nur Hunderte oder Tausende von Zeilen enthält. Jede Zeile verfügt außerdem über ein spezifisches IDENT-Feld.
Jetzt möchte ich nur alle Zeilen von BIG behalten, die in SMALL dieselbe IDENT haben. Mit anderen Worten: So filtern Sie GROSS mithilfe des IDENT-Felds von KLEIN. Mit SAS SQL wäre das ein Kinderspiel, z
proc sql ;
Tabelle erstellen GEFILTERT
als select * from BIG
wo IDENT in (wählen Sie IDENT aus SMALL) ;
aufhören ;
Kann ich so etwas in JMP machen?
Mit freundlichen Grüße
Neuling
Betreff: So filtern Sie einen Datensatz mithilfe eines separaten Datensatzes mit Tausenden von IDs (Unterabfrage, Skripterstellung)Im JSL-Skript sieht es so aus:
data table ("Big") << join (with(data table("Small")),
by matching columns (::ID=:ID),
drop mutiples (0,0),
include nonmatches(0,0),
preserve main table order(1)) ;
Vorsicht vor möglichen kleinen Tippfehlern...
Betreff: So filtern Sie einen Datensatz mithilfe eines separaten Datensatzes mit Tausenden von IDs (Unterabfrage, Skripterstellung)Wenn Sie den Join interaktiv ausführen, können Sie dann zu der gerade erstellten Datentabelle gehen, mit der rechten Maustaste auf das Element „Quelle“ neben dem grünen Dreieck im Tabellenbereich am linken Rand der Datentabelle klicken und „ Bearbeiten".Es zeigt Ihnen die JSL, die zum Erstellen der verknüpften Datentabelle verwendet wurde.
Betreff: So filtern Sie einen Datensatz mithilfe eines separaten Datensatzes mit Tausenden von IDs (Unterabfrage, Skripterstellung)Ich schätze Ihre Bemühungen, aber ich war an einer Skriptantwort interessiert, nicht an einer interaktiven Erklärung.
Betreff: So filtern Sie einen Datensatz mithilfe eines separaten Datensatzes mit Tausenden von IDs (Unterabfrage, Skripterstellung)Lieber Newbie2Jumpie,
Dies ist auf verschiedene Arten möglich. Es hängt davon ab, ob Sie eine neue Tabelle erstellen oder nur filtern möchten. Beginnen wir mit der Erstellung einer neuen Tabelle (prüfen Sie, ob Sie über genügend RAM verfügen):
- Öffnen Sie beide Tabellen in JMP
- Im Tabellenmenü haben Sie „Join“, wo Sie einen Datenbank-Join nach Bedarf durchführen können, wie zum Beispiel hier

3. Drücken Sie OK und Sie erhalten eine verkürzte neue Tabelle und können die beiden anderen Tabellen schließen.
Ähnliches können Sie mit dem Menü Tabellen -> JMP Query Builder erreichen, allerdings haben Sie dort noch mehr Optionen wie in einem Datenbank-Query Builder und erhalten neben dem Quellskript ein Aktualisierungsskript und andere Optionen, mit denen Sie Optionen für Abfragen ändern können. (Anbei ein Beispiel zur Veranschaulichung (Big Class.jmp, ID_Table.jmp, SQLQuery1.jmp)
Mit der anderen Option können Sie im Handumdrehen filtern: Verwenden von verknüpften/referenzierten Tabellen, auch bekannt als virtueller Join. Dort benötigen Sie in der referenzierten Tabelle eine Spalte mit demselben Namen wie in der großen Tabelle für die ID und eine weitere Spalte mit demselben Inhalt wie die ID-Spalte der kleinen Tabelle (also eigentlich zweimal dieselbe ID-Spalte, nur mit unterschiedlichen Namen). . (Schauen Sie sich bitte das zweite Beispiel an. In der kleinen Tabelle geben Sie die ID-Spalte mit dem gleichen Namen wie in der großen Tabelle als Link-ID an (Rechtsklick auf die Spalte und Link-ID). In der großen Tabelle klicken Sie mit der rechten Maustaste auf die ID-Spalte und wählen Referenz verknüpfen. Als Referenz wählen Sie die kleine Tabelle aus. Alle Spalten der kleinen Tabelle werden nun auch in der großen Tabelle als ausgeblendete Spalten visualisiert. Jetzt können Sie durch diese zweite ID-Spalte filtern, die nur Einträge wie in der kleinen Tabelle enthält. Dadurch werden alle anderen ausgeschlossen und daher nur die Zeilen berücksichtigt, die von Interesse sind, aber in einer anderen Tabelle aufgeführt sind.