+---+------------+
| V | output |
+---+------------+
| y | 1 |
| y | 2 |
| y | 3 |
| N | 0 |
| y | 1 |
| y | 2 |
| N | 0 |
| N | 1 |
+---+------------+
-2
A
答えて
0
あなたのサンプル出力は、いくつかは少し複雑で、
は、私はもちろん 私はid列は1から始まり、隙間なくに常時移行することを前提として問題の解決のために SQL recursive queryを使用するのが好ましい方法です。より複雑なケースでは、ROW_NUMBER()関数は、idフィールド以外に追加され、参加しなければならないrownumbersに設定する必要があります私はそれが
を次のように--create table bool(id int identity(1,1), bool char(1))
--insert into bool values ('Y'),('N'),('Y'),('Y'),('Y'),('N'),('Y'),('N'),('N'),('Y'),('Y'),('Y'),('Y'),('Y'),('N'),('Y'),('Y')
;with cte as (
select id, bool curr, bool pre, 1 output from bool where id = 1
union all
select
bool.id, bool.bool curr, cte.curr,
case when bool.bool = cte.curr then cte.output + 1 else case when bool.bool = 'Y' then 1 else 0 end end
from cte
inner join bool on bool.id = cte.id + 1
)
select * from cte
出力され、役に立てば幸い
3
注文情報を持つ列(たとえば、id
)があるとします。次に、一緒に表示される「Y」と「N」のグループを特定し、それらを列挙したいとします。
あなたは行番号のトリックの差を利用してこれを行うことができます。これはどのように機能するかを説明
select t.v,
row_number() over (partition by v, seqnum_id - seqnum_vid order by id) as output
from (select t.*,
row_number() over (order by id) as seqnum_id,
row_number() over (partition v by order by id) as seqnum_vid
from t
) t;
は通常、トリッキーです。サブクエリを実行して、シーケンス番号がどのように見えるのか、識別するグループの違いが一定であるのがわかるようにすることをお勧めします。
関連する問題
- 1. apache cassandraでプライマリキー(自動生成シーケンス)を生成する方法
- 2. 交互に増分するシーケンスを生成する方法
- 3. 真と偽に対応するシーケンスを生成する方法
- 4. LSTMを使ってシーケンスを生成する方法は?
- 5. プログラムを実行せずにシーケンス図を生成する方法
- 6. 列の値に基づいてシーケンスを生成する方法
- 7. MySQL 5.1community editionでシーケンスを生成する方法
- 8. cで英数字シーケンス番号を生成する方法
- 9. 生成シーケンス
- 10. このようなシーケンスを生成する他の配列間の配列
- 11. SQLでテンポラリテーブルなしの日付範囲シーケンスを生成する方法
- 12. SASは、シーケンス番号をエレガントな方法で生成(繰り返し)します
- 13. matlab:シーケンスを生成する接頭文字列を指定する方法
- 14. SQLサーバでシーケンスを生成する
- 15. ルア - 数字のシーケンスを生成する
- 16. シーケンスの文字数を生成する
- 17. Neo4jでユニークなシーケンス番号を作成する方法は?
- 18. アンドロイドスタジオからシーケンス図を生成する方法はありますか?
- 19. クラス図とシーケンス図を自動生成する方法はありますか?
- 20. ボタンをクリックしてHTMLテキストボックスでシーケンス番号を自動生成する方法
- 21. ネイティブ(C、C++)コードのシーケンス図の生成方法は?
- 22. 同じ「ランダム」シーケンスを生成する2つの異なるシード
- 23. JAXBのメモリ内スキーマ生成順序/シーケンスを制御する方法は?
- 24. シーケンス番号の生成は
- 25. 再帰的なpythonで数字のシーケンスを生成する
- 26. 色が交互になるようにJlistを生成する方法
- 27. HTML IDを生成しないようにRailsタグを設定する方法
- 28. SQLを使用してそのような結果を生成する方法
- 29. このようなツリーの生成方法は?
- 30. 'xxx0000'、 'xxx0001'のようなID番号の生成方法は?
できません。 SQLテーブルは、*順序付けられていない*集合を表します。したがって、必要な結果を得るために順序を指定する列が必要です。 –