<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Was ist die bekannteste Methode in einer JMP-Tabelle, um das Äquivalent von ROW_NUMBER () OVER ([PARTITION BY value_expression, ...) auszuführen? [n]] ORDER BY ...), die wir in SQL (wie Transact-SQL) ausführen können?
Für die T-SQL-Version siehe: https://msdn.microsoft.com/de-de/library/ms186734.aspx
Wenn ich diese Beispieltabelle habe:
| Name | Essen |
|---|
| Alice | Toast |
| Bob | Orange |
| Alice | Apfel |
| Charlie | Pizza |
| Bob | Tomate |
Und ich möchte eine Spalte "Instanznummer" hinzufügen, die mir die Instanz dieser Person auf der Grundlage einer alphabetischen Sortierung nach Lebensmitteln gibt ...
Name
| Essen | Beispiel
|
|---|
| Alice | Toast | 2 |
| Bob | Orange | 1 |
| Alice | Apfel | 1 |
| Charlie | Pizza | 1 |
| Bob | Tomate | 2 |
(Reihenfolge der Ausgabetabelle spielt keine Rolle.)
Eine Methode, die ich bisher gefunden habe, besteht darin, die Eingabetabelle nach (Name, Lebensmittel) zu sortieren und eine Formelspalte hinzuzufügen:
If (Zeile () == 1, 1, If (Verzögerung (: Name, 1) = =: Name, Verzögerung (: Instanz, 1) + 1, 1))
Ist dies die einfachste Möglichkeit, die SQL-Funktion ROW_NUMBER zu imitieren, oder bietet JMP eine bequemere Möglichkeit?
Das Beste, was ich mir vorstellen kann, ist Col Rank (), aber es unterstützt derzeit keine BY-Variablen oder Zeichenspalten.