[解決済み] SELECTステートメントで "前の行 "の値にアクセスする方法はありますか?
2022-09-11 14:40:11
質問
テーブルの2行の列の差を計算する必要があります。SQLで直接これを行うことができる方法はありますか?私はMicrosoft SQL Server 2008を使用しています。
私はこのようなものを探しています。
SELECT value - (previous.value) FROM table
変数 "previous"が最新の選択された行を参照することを想像してください。もちろん、そのような選択では、n行のテーブルでn-1行が選択されることになりますが、それはおそらくではなく、実際には私がまさに必要としているものです。
それは何らかの方法で可能ですか?
どのように解決するのですか?
SQL には順序という概念がないので、何らかのカラムで順序を指定する必要があります。このようなものです。
select t1.value - t2.value from table t1, table t2
where t1.primaryKey = t2.primaryKey - 1
順番を決める方法は知っているが、現在の値から前の値を取得する方法は知らない場合(例えば、アルファベット順に並べたい場合)、標準SQLでそれを行う方法は知りませんが、ほとんどのSQL実装にはそれを行うための拡張機能があります。
SQLサーバーで、各行が区別できるように並べることができる場合、この方法が有効です。
select rank() OVER (ORDER BY id) as 'Rank', value into temp1 from t
select t1.value - t2.value from temp1 t1, temp1 t2
where t1.Rank = t2.Rank - 1
drop table temp1
同列を解消する必要がある場合は、ORDER BYに必要なだけのカラムを追加することができます。
関連
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] SQL Server - 挿入された行のIDを取得するための最良の方法は?
-
[解決済み] SQL Serverでストアドプロシージャ内のテキストを検索する
-
[解決済み] T-SQLでnot equalには!=と<>のどちらを使うべきですか?
-
[解決済み] 各グループの上位1行を取得
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] SQLサーバーで行を列に効率的に変換する
-
[解決済み] SQL Server テーブルからランダムな n 行を選択する
-
[解決済み] [Solved] T-SQLのselectで各行に乱数を生成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ERROR 1136 (21S01) を解決してください。列の数が Mysql の行 1 の値の数と一致しません。
-
解決策:java.sql.SQLException: ユーザー ''@'localhost'' (パスワード: YES を使用) のアクセスが拒否されました。
-
[解決済み] SQL Server FOR EACH ループ
-
[解決済み] LINQでInclude()は何をするのですか?
-
[解決済み] 指定されたスキーマにテーブルが存在するかどうかを確認する方法
-
[解決済み] アドホッククエリとは何ですか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] SQL ServerにおけるINSERT OR UPDATEに関する解決策
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。