問題タブ [window-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.
sql - postgresqlでマッチが立っていた合計時間を見つける
time という列を含む matchstats というテーブルを持つデータベースがあり、アクションが発生するたびに更新されます。また、groundstatsid という列もあり、null でない場合は、立っているのではなく地面でアクションが行われたことを意味します。最後に、Round という列があります。
例:
フルタイムの状態を取得するには、基本的に、クエリで最初の時間 (1) を取得してそれを保存し、それから Groundstatsid を非 NULL 値が表示されるまで見て、その位置で時間を取得し、以前に保存された数値を減算します。立ち上がりの時間を取得します (17)。次に、groundstatsid が NULL である場所を探し続けます。その値が見つかったら、groundstatsid または新しいラウンドで非 NULL 値が見つかるまで、同じ検索プロセスを実行する必要があります。その場合、プロセス全体が再び開始されます。
試合全体が終わったら、結果を合計したいと思います。
この例のクエリは 25 を返すと思います。
postgresql - 1,2,3,4, 1,2,3,4,... シリーズを繰り返す行に番号を付ける方法
次のようなテーブルに長さ 4 のシリーズを追加するにはどうすればよいですか。
ソース表:
結果表:
PostgreSQL 9.1 を使用しています。
sql - where句にウィンドウ関数がないのはなぜですか?
タイトルがすべてを物語っていますが、SQL Serverのwhere句でウィンドウ関数を使用できないのはなぜですか?
このクエリは完全に理にかなっています。
しかし、それは機能しません。CTE /サブクエリよりも良い方法はありますか?
編集
これは、CTEを使用したクエリの価値があります。
編集
サブクエリで表示される回答の+1ですが、実際には、where句でウィンドウ関数を使用できない理由を探しています。
sql - 繰り返し属性によるグループ化
基本的に、メッセージを作成したユーザーを識別するフィールドをmessages
持つtable があります。user_id
2 人のユーザー間の会話 (メッセージのセット) を表示するとき、メッセージを でグループ化できるようにしたいのですuser_id
が、トリッキーな方法で:
いくつかのメッセージがあるとしましょう ( でソートcreated_at desc
):
以下の順序で 3 つのメッセージ グループを取得します。
[1,2], [3,4], [5]
別のユーザーが表示されるまで *user_id* でグループ化し、次にそのユーザーでグループ化する必要があります。
私は PostgreSQL を使用していますが、最高のパフォーマンスが得られるものであれば、PostgreSQL に固有のものを喜んで使用します。
sql - Oracle ウィンドウ関数の合計
次のコード スニペットで、オラクル パーティションsum
内の aの意味を教えてください。sum
(SUM(SUM(VAL)))
sql - セールスマンのクライアントあたりの最高価格を集計する
私はこのようなテーブルを持っています:
一意のセールスマンとクライアントのペアごとに、最も高額な販売ごとにorder_idの配列を見つけたいと思います。この場合、結果のテーブルが必要です。
これまでのところ、クエリの概要があります。
ただし、集計関数max_client_salesmanの記述に問題があります。
postgresの集計関数と配列に関するオンラインドキュメントはごくわずかです。どんな助けでも大歓迎です。
sql - ランク関数oraclesql
私はSQLに不慣れで、割り当てに取り組んでいます。ランク関数をどこで使うのかという質問がありますが、どうやって使うのかわかりません。インターネットでいくつかの情報を見つけようとしましたが、それでも問題があります。ここに質問を投稿しています。役立つ記事やコメントがあれば、ここに投稿してください。
ありがとう、
sql - Postgres 9.1 - 次の値を取得する
次のようなデータ(「TimeStamp」でソート)があります。
各レコードの「TimeStamp」の次の値(次の行だけでなく)を選択する必要があります。
たとえば、上記のデータは次のようになります。
これにウィンドウ関数を使用しようとしましたが、この結果を得ることができませんでした。何かご意見は?
sql - TSQL OVER句:COUNT(*)OVER(ORDER BY a)
これは私のコードです:
BOLのこのページで、Microsoftは次のように述べています。
PARTITION BYが指定されていない場合、関数はクエリ結果セットのすべての行を単一のグループとして扱います。
したがって、私の理解に基づいて、最後のSELECT
ステートメントは次の結果をもたらします。すべてのレコードが1つのグループにあると見なされるので、そうですか?
しかし、実際の結果は次のとおりです。
誰でもその理由を説明するのを手伝うことができますか?ありがとう。
sql - 複数の行のデータを複数の列を持つ 1 つの行に表示する
タイムスタンプ付きのいくつかのレコードの PostgreSQL データベースがあります。
ある期間 (たとえば、PRECEDING 式と FOLLOWING 式を使用して 1 か月) にウィンドウ内のデータを収集し、その月のすべてのレコードを含む複数の列 (たとえば、月の各日に対して 30) を作成する簡単な方法はありますか?
この単純なケースを考えてみましょう: 2 つの列timestamp
とのテーブルですmeasurement
。私が欲しいのは、31列のテーブルを取得することです:タイムスタンプとmeasurement1
、measurement2
... measurement30
、ここで、measurement_i
タイムスタンプのi日前の測定値です。