問題タブ [generate-series]

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.

0 投票する
1 に答える
8140 参照

sql - 任意の時間間隔で行をカウントする最良の方法

私のアプリには、Eventsタイムスタンプ付きのイベントを含むテーブルがあります。

最新の各N時間間隔でのイベントの数を報告する必要があります。さまざまなレポートの場合、間隔は「毎週」、「毎日」、「毎時」、「15分間隔」のいずれかになります。

たとえば、ユーザーは、毎週、1日、1時間、または15分ごとに受け取った注文の数を表示できます。

1)私の好みは、任意の時間間隔でグループ化する単一のSQLクエリ(Postgresを使用しています)を動的に実行することです。それを行う方法はありますか?

2)簡単ですが醜いブルートフォース攻撃の方法は、タイムスタンプでソートされた開始/終了時間枠内のすべてのレコードに対して単一のクエリを実行し、メソッドに任意の間隔で手動で集計を作成させることです。

3)別のアプローチは、間隔ごとにイベントテーブルに個別のフィールドを追加し、、、、およびフィールドを静的the_week the_dayに格納することです。そのため、そのフィールドについてレポートするたびにではなく、レコードが作成されたときに(1回)「ヒット」を取得します。 。the_hourthe_quarter_hour

必要に応じてモデルを変更し、間隔データを事前に保存できるとすると、ここでのベストプラクティスは何ですか(ただし、テーブルの幅を2倍にするというわずかな費用がかかります)。

0 投票する
3 に答える
126 参照

sql - 2 つのテーブルを結合して結合する

私は Postgres 9.1 を使用しており、データが存在しない場合でも複製したい 2 つの列を返すクエリがあります。私のクエリの重要な部分は

これにより、期待どおりにすべての機関とすべての interval_times が返されます。ここで、データのない行も必要です。次のようにして、一度にいずれかを取得できます

また

ただし、それらを組み合わせて、すべての機関のすべての interval_time を取得したいと考えています。interval_timeごとに繰り返される各institution_idを含むある種の中間テーブルを作成し、それをRIGHT JOINするのが最善のようですが、その方法がわかりません。どんな助けでも大歓迎です。

編集

少し遊んだ後、やりたいことは次のようですが、構文が間違っています

0 投票する
2 に答える
396 参照

postgresql - sum と generate series が postgresql で機能しない

classification_indicator_id列にはいくつかの数字があります。この数字を1日系列で合計したいと思います。クエリの下に書きました

しかし、私はいつも次のようなものを得ます:

私はそれが次のようなものであるべきだと確信しています:

SQL フィドル

0 投票する
2 に答える
2059 参照

sql - SQL は generate_series から選択し、user_id でフィルタリングするとシリーズが削除されますか?

generate_series と複数の結合を使用して、postgresql 9.2.4 に複雑な (私にとって) SQL クエリがあります。エクササイズ テーブルから特定の日のすべてのエクササイズの担当者を合計し、それらのエクササイズが現在のユーザーによって行われたワークアウトに属していることを確認する必要があります。最後に、そのテーブルをシリーズに結合して、欠落している日付を表示する必要があります (generate_series を使用)。

私の考えでは、from 句でシリーズを選択し、シリーズをサブクエリに結合して、エクササイズ テーブルとワークアウト テーブルの間の内部結合の結果を得ることを考えました。たとえば、次のクエリがあります。

これにより、次の出力が得られます。

ただし、特定の条件でフィルタリングしたい:

例えば。

しかし、上記の条件で WHERE 句をクエリに入れると、出力は次のようになります。

シリーズは消えます。

user_id でフィルタリングしてシリーズを保持するにはどうすればよいですか? どんな助けでも大歓迎です。

0 投票する
2 に答える
3773 参照

sql - postgresql で列に一連の月を生成する

postgresql で、'YYYY-MM' の形式で一連の月の日付を生成するにはどうすればよいですか?

0 投票する
7 に答える
38386 参照

sql - redshift で SQL 関数 generate_series() を使用する

redshift でシリーズ生成機能を使用したいのですが、うまくいきません。

redshift のドキュメントには、サポートされていないと書かれています。次のコードは機能します。

出力:

日付でも同じことをしたいと思います。次のようなさまざまなバリエーションを試しました。

キックアウト:

また試しました:

そして試しました:

両方がキックアウト:

そうでない場合は、別の投稿からこのコードを使用します。

SQL 関数を引数として使用した PostgreSQL generate_series()

0 投票する
3 に答える
303 参照

sql - PostgreSQL の増分日付?

次のデータを含むデータベース テーブルがあります。

日付が欠落していることに注意してください: 2014-05-04。次のクエリをどのように変更すればよいですか。

そのため、次の出力が得られます。

これは可能ですか?