問題タブ [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.
php - LEFT JOIN と generate_series を使用した CakePHP の検索
基本的に、それは可能ですか?可能であれば、CakePHP 2.0.6 で生の query() メソッドを使用せずに次のコードを実行するにはどうすればよいですか? 私はPostgreSQL(generate_series()
の機能です)を使用しています。では、CakePHP の方法でこのクエリを実行するにはどうすればよいでしょうか。
EDIT あるユーザーは、Task で find 呼び出しを使用して、generate_series() に直接参加できると言いました。これが私の試みです。このコードは、CakePHP が generate_series の関数引数を二重引用符で囲んでいるため、エラーをスローします。どうすればそうしないようにできるのだろうか?
次の SQL の製品:
sql - 任意の時間間隔の集計を取得する
これは、日足バーを作成するためのこれまでのクエリです。
「時間」を「分」または「日」に変更すると、これらの単位に対応するバーが表示されます。
ただし、5 分または 15 分バーが必要な場合はどうすればよいでしょうか? date_trunc()
はこれらをサポートしていません。私はそれを行うための素敵でエレガントな方法を探しています。
postgresql - PostgreSQLの揮発性式とサブクエリ
Bruce Momjianのブログ投稿「SQLを介したランダムデータの生成」で、彼は次のコードを使用して5つのランダム文字列を生成しました。
なぜ6行目の「b*0」が必要なのか疑問に思いました。それを削除すると、結果は5つのまったく同じ文字列に変更されました。これは、Postgresが外部の選択式(結果)をキャッシュしたことを意味します。
Postgresで式のキャッシュがどのように機能しているかがわかりませんでした。ドキュメントによると、 random()関数はVOLATILEとマークされているので、それに依存する式も揮発性であると思います。
Postgresで式キャッシングはどのように機能しますか?それはどこかに文書化されていますか?「b*0」がrandom()が無効にしたキャッシュを無効にしたのはなぜですか?
アップデート:
この問題を調査するために、「b * 0」をfloor()呼び出しの内側に移動して、random()と同じ位置/レベルにしました。
結果はまだキャッシュされません。異なる文字列。
更新:問題を示す別の例
sql - 2つの日付の間の1か月を数える
私はこれに数時間取り組んできましたが、運がなく、壁にぶつかりました。私のデータは次のようになります。
私がやろうとしているのは、2つの日付の間の毎月のカウントに1を追加することです。したがって、私の出力は理想的には次のようになります。
つまり、2つの日付の間の「空の」月をチェックし、それらに1を追加する必要があります。
これは私がこれまでに作成したコードです。基本的に、2つの日付の間の月数をカウントし、それらを月と年にグループ化します。
これは私が立ち往生しているところです-「空の」月ごとに実際に1を追加する方法がわかりません。
sql - PostgreSQL: 頻度表の展開
PostgreSQLで頻度表を展開する方法を知っている人はいますか?
たとえば、テーブル x を次のように変換します。
の中へ
設定コード:
postgresql - PostgreSQL:generate_series()を使用して列の欠落している数値を特定するにはどうすればよいですか?
results
タイプの列がありますint
が、さまざまなテストが失敗し、テーブルに追加されませんでした。commandid
に見つからないリストを返すクエリを作成したいと思いますresults
。私は上記のクエリが私が望むことをするだろうと思いました。commandid
ただし、予想される範囲外の範囲(負の数など)を使用しても機能しません。
postgresql - この generate_series() クエリの「sa」は何を意味しますか
営業日を返すためにこれを試していますが、理解できs.a
ずs(a)
、このクエリでは:
誰か説明してくれませんか?
postgresql - generate_series を使用してテーブルを非正規化するための PostgreSQL 結合
私はこのテーブルを持っています:
この方法で行を「非正規化」したいと思います。
したがって、名前ごとにカウント列に等しい行数があります。ジョンが 4 行、マークが 2 行、アルバートが 3 行あります。しかし、最大数 (この場合は 4) がわからない場合は、generate_series() 関数を使用できません。MAX(count) を知らなくてもこれを行う方法はありますか?
sql - データ間隔でグループ化
ネットワーク上の帯域幅の使用状況を一定期間保存する単一のテーブルがあります。1 つの列には日時 (主キー) が含まれ、別の列には帯域幅が記録されます。データは毎分記録されます。その時点で他のデータを記録する他の列があります。
ユーザーが 15 分間隔 (開始日と終了日を指定して 24 時間以内) にデータを要求した場合、単一のクエリで必要なデータを取得することは可能ですか、またはこれを行うにはストアド プロシージャ/カーソルを作成する必要がありますか? ? その後、ユーザーは 5 分間隔のデータなどを要求できます。
私はおそらくPostgresを使用するでしょうが、他にもっと良いNOSQLオプションはありますか?
何か案は?
postgresql - generate_series()セルへのPostgreSQLアクセス
私はgenerate_series(min, max)
次の方法でPostgreSQLを介して日付系列を生成しています:
getstartdate()
それぞれ、getenddate()
特定のタスクの開始日と終了日を返します。私はより多くのテーブルEmployees(employeeid, taskid, worktime)
とを持っていますTasks(taskid, startdate, enddate)
。
私の目標は、生成されたシリーズから、従業員の労働時間を毎日グループ化することです。この結合を実行するにはどうすればよいですか?startdate
私は列に直接アクセスできずenddate
、表Tasks
では上記の関数を介してのみ日付にアクセスできることに注意してください。SUM()
作業時間は時間/日であるため、シリーズの特定の日付までに従業員が作業するタスクごとに集計する必要があります。問題は、生成されたシリーズの日付にアクセスする方法がないことです。
データ構造の編集:
説明:
データベース全体がシミュレーション用であるため、最初に(テーブルでtasks
)タスクスケジュールを定義してから、結果をに挿入するシミュレーションを実行しtaskresults
ます。ご覧のとおり、結果にはでのみ保存されます。そのため、 /関数duration
を使用して各タスクの日付範囲にのみアクセスできます。このテーブルは基本的に、従業員をテーブルからテーブルに割り当て、1日あたりそのタスクで作業している時間数を示します。getstartdate
getenddate
employeetasks
employees
task