問題タブ [analytic-functions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - Oracleは、別のテーブルで時間順に並べられた最初の前後の行を取得します
2つのテーブルがあり、それぞれにタイムスタンプ列があります。Aの各行、Bの最初の前後のタイムスタンプをクエリするにはどうすればよいですか?
が欲しいです:
A.id A.timestamp first_preceding(B.timestamp)first_following(B.timestamp)
oracle - Oracleの分析機能を理解するのに助けが必要
単一のテーブルで重複を検出する次のコードがあります。
私は非常に多くのウェブサイトをグーグルで検索しましたが、ほとんどの人がこの効率的な方法に従っていることがわかりました. しかし、これらのネストされたクエリがどのように機能するかについての適切な説明を見つけた場所はありません。
sql - 同様の行を削除しますが、特定の値を使用します
userテーブルとuser_groupテーブルがあります。1人のユーザーが複数のグループに属することができます。adminとuserの2つのグループがあります。管理者グループのグループIDは1で、ユーザーグループのグループIDは2です。これら2つのテーブルの結合から選択します。2つのテーブル間の結合を使用して選択したいと思います。
各行で管理者を2回取得します。グループIDをユーザーとして持つadminの他の行、つまりこのクエリの1を削除したいのですが、どうすればこれを実現できますか?sqlfiddleはここにあります。グループ関連の情報はall_groupsテーブルにあります。
sql - 結果を分配するSQLソート
次のような製品のテーブルがあるとします。
次のように製品を並べ替えるクエリを作成したいと思います。
つまり、クエリは、同じ販売者からの連続した製品の可能性を最小限に抑えるために、販売者によって配布された最新の更新された製品を表示する必要があります。
これを最もよく達成する方法についてのアイデアはありますか? (このアプリケーションのコードは Ruby ですが、可能であれば純粋な SQL で実行したいと考えています)。
編集:
クエリもこのケースを処理する必要があることに注意してください。
次の結果を生成します。
oracle - Oracleのネストされた分析関数
分析関数内でネストされた分析関数を使用できますか?式内で別の分析関数を使用できるかどうか。
一例を教えてください。
sql - SQLServerのOver句
私は次のクエリを持っています
次のような結果が得られます
これは、テーブル内の2つの日付の間に、5つの一意の薬剤名が必要であることを示すpatIDを意味するはずです。ただし、次のクエリを実行すると、次のようになります。
次のような結果セットが返されます
実際、2008-10-17と2009-01-15の日付の間の2番目のクエリに対して5つの行が返されますが、一意の名前は3つしかないことがわかります。私はover句を変更するさまざまな方法を試しましたが、すべて失敗のレベルが異なります。各行に指定された時間枠内で一意 のをのみ検索するようにクエリを変更するにはどうすればよいですか?drugName
sql-server-2008-r2 - 日付範囲で分割された値の以前の発生をカウントする
これは、過去 90 日間に受け取ったリードに関するマーケティング部門からのアドホック リクエストに対して行う簡単なクエリです。
彼らは、EMAIL_ADDRESS が一致する ADDRESS_1 の以前の出現回数を示す派生列を追加するよう求めています。しかし、彼らは異なる日付範囲を望んでいます。
したがって、派生列は次のようになります。
これらの派生列は、少数しかなかったときに更新ステートメントを使用して手動で入力しました。上記のクエリは、実際には、より多くの列を持つ非常に大きなクエリのサンプルにすぎません。実際のリクエストは、13 列の 6 つの日付範囲に分かれています。78 個の追加の更新ステートメントを使用するよりも良い方法があるかどうかを尋ねています。
sql - Oracle は、グループごとに日付ベースのシーケンスに分割します
PARTITION BY OVER を使用して、特定の列で行を「グループ化」しようとしています。PARTITION の使用についてはある程度理解していますが、パーティションを日付で「ブロック」したいと考えています。たとえば、
そして、col1 でパーティション分割したいのですが、最後の A を最初の 2 つとは「異なる」ものにしたいのです。これは、日付が「B」行で区切られているためです。
私が使用する場合;
それは降伏します。
しかし、私が本当に欲しいのは;
これは PARTITION BY OVER を使用して可能ですか? 現時点では、カーソルを使用してデータを解析し、「A」の 2 つのシーケンスを分離できるようにグループ ID を割り当てることに戻りましたが、これは非常に遅いです。
ありがとう、
マーク。
sql - 範囲を使用したSQLServer2012の移動平均
次のように、地域と月でグループ化された3か月の移動平均を計算しようとしています。
説明の目的で月が拡張されていることに注意してください。実際には、出力は1か月と言っているだけだと思います。
これを行うには、地域と月ごとにCTEグループを作成し、次のように数回参加します。
しかし、それは醜いです。6か月の移動平均または12か月の移動平均を実行する必要があるかどうかを想像してください…私はt-sql 2012分析関数、特にRANGEオプションを使用しようとしています。以前にROWSを使用したことがありますが、範囲はありません。
私が試したのは
しかし、構文エラーが発生します。
*メッセージ8120、レベル16、状態1、行2
の列'dbo.vw_score_by_region.month'は、集計関数にもGROUP BY句にも含まれていないため、選択リストでは無効です。*
明らかに私は愚かなことをしているが、何をしているのかわからない。
sql - 別の値が変更されたときに値を返す
最後の列を除いて、次を返すクエリがあります。これは、作成方法を理解するために必要なものです。与えられたそれぞれについてObservationID
、ステータスが変更された日付を返す必要があります。オフセットだけでなく条件を受け取るLEAD()関数のようなもの。できますか?
列変更日を計算する必要があります。ステータスが現在のステータスではなかった最後の日付である必要があります。