<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMPテーブルで、ROW_NUMBER()OVER([PARTITION BY value_expression、...]と同等の処理を実行するための最もよく知られている方法は何ですか。[n]] ORDER BY ...)SQLでできること(Transact-SQLなど)?
T-SQLバージョンについては、 https://msdn.microsoft.com/ja-jp/library/ms186734.aspx
この例の表があるとします。
| 名 | フード |
|---|
| アリス | トースト |
| ボブ | オレンジ |
| アリス | 林檎 |
| チャーリー | ピザ |
| ボブ | トマト |
そして、Foodのアルファベット順に基づいて、その人のインスタンスを表示する「インスタンス番号」列を追加します。
名
| フード | インスタンス
|
|---|
| アリス | トースト | 2 |
| ボブ | オレンジ | 1 |
| アリス | 林檎 | 1 |
| チャーリー | ピザ | 1 |
| ボブ | トマト | 2 |
(出力テーブルの順番は関係ありません。)
これまでに見つけた方法は、入力テーブルを(Name、Food)でソートして式の列を追加することです。
If(Row()== 1、1、If(Lag(:Name、1)==:Name、Lag(:Instance、1)+ 1、1))
これはROW_NUMBER SQL関数を模倣する最も簡単な方法ですか、それともJMPはより便利な方法を提供しますか?
私が考えることができる最も近いものはCol Rank()ですが、それは現在BY変数や文字列をサポートしていません。