問題タブ [gaps-and-islands]
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.
mysql - タイプ B とタイプ C の間で発生するタイプ A のすべてのログ イベントを検索します。
イベント タイプ B と C の間で同時に発生するタイプ A のすべてのイベントを見つける良い方法を見つけようとしています。
また、イベント B と C は process_id を共有する必要があります。
各 process_id グループには、1 つの B イベントと 1 つの C イベントがあります。
テーブル構造は次のようになります。
私の試みは次のようになりました:
これを実行すると、ハングします。これを行うためのより効率的な、または固定された方法について何か考えはありますか?
ありがとう!
mysql - MySQLは、不足している時間/日付を範囲内で埋める方法を教えてください。
同じステートメントで、曜日と時間に基づいてデータを抽出しようとしています(これにより、1時間あたりおよび1週間に何回の訪問があったかを確認できます。ステートメントは次のとおりです。
いくつかのサンプルデータ
問題 ご覧のとおり、データには何時間にもわたってデータが欠落しています。そして、最初の出力から始まる24時間のタイムラインと一致する、毎日[x、x、x、x、x、x、x]の形式のデータを必要とするグラフを作成しているので、欠落しているものは「0」になります。
PHP側ではループを使用して処理できますが、曜日ごと、およびその範囲内で1時間ごとにループするのはかなり面倒で、間違いなくクリーンではありません。
一時的なテーブルなしで可能ですか(クエリ自体に24桁を含めるなど)?
sql - reducing table to avoid space inefficiency
I have the following table :
ı want to obtain the below table ;
process ;
but actual table should be reduced to as shown below
how can I do that ?
sql - 最大ストリーク内の行?
行を考える
最大のストリーク (利益) に関与する行を最も効率的に選択するにはどうすればよいでしょうか。
最大のストリークは最初の 3 行であり、それらの行が必要です。私が思いついたクエリは、ネストされたクエリと派生テーブルの集まりです。一般的なテーブル式またはより高度なものを使用してこれを行う効率的な方法を探しています。
sql - SQLは時間の経過とともにデータのギャップを閉じる
プロトタイプに使用しているプレイデータのテーブルがあります。仕事中にデータを生成していますが、離れてマシンがスリープ状態になると、データ生成が停止します。これは私のアイテムのコレクションに大きなギャップを引き起こしました。
テーブルの列にある各アイテムの値をシフトして、DateTimeCreated
アイテムと次に生成されるアイテムの間に10分以上のギャップがないようにしたいと思います。
テーブルの構造は次のようになります。
L2Sでこれを行うことを考えていましたが、100万を超えるレコードがあるので、それが最善の解決策である場合はIDKです(各項目を繰り返します)。SQLでこれを行うには、はるかに高速な方法が必要であることを私は知っています。
sql - 欠損データのギャップを生成する方法
次のように構造化されたデータがあります。
次の CTE を使用します。
次のような「日付セット」を作成しました。
問題は次のとおりです。元のデータセットに、CTE に対応する日付がないデータがいくつかあります (提供されている例では、2012-01-24 6:00 はデータに存在しません)。
これらの欠落しているデータ ポイントについては、値として「NULL」を表示したいと思います。生成した CTE の日付を活用できるのではないかと考えましたが、どうすればこれができるかわかりません。
私はこのようなことを試みましたが成功しませんでした:
sql - Oracle: 日付フィールドに基づいてギャップ レコードがあるかどうかを判断するにはどうすればよいですか?
従業員のタイムシートを管理するアプリケーションがあります。
私のテーブルは次のようになります。
各タイムシートは 14 日間をカバーするため、TIMESHEET レコードごとに 14 の TIMESHEET_DAY レコードがあります。また、誰かが休暇を取った場合、その 14 日間に勤務時間がなければ、タイムシートを入力する必要はありません。
ここで、従業員に過去 6 か月間で 7 日間の欠勤があるかどうかを判断する必要があります。つまり、0 時間の TIMESHEET_DAY レコードが 7 つ連続しているか、レコードが提出されていないものと 0 時間労働で提出されたレコードの組み合わせがある 7 日間の期間のいずれかを探す必要があります。その場合、最後の TIMESHEET_DAY レコードの DATE_WORKED と時間を知る必要があります。
アプリケーションはasp.netなので、すべてのTIMESHEET_DAYレコードを取得して反復処理できましたが、SQLでこれを行うより効率的な方法が必要だと思います.
sql - sysdate-30 と sysdate+30 の間のすべての日付のリストを生成する方法は?
目的とこれまでに得たもの
不足している労働トランザクションをチェックするビューを作成しようとしています。ビューは Crystal レポートにフィードされます。
この場合、ビューは sysdate+30 から sysdate -30 までのすべての日付を取得し、それらの日付ごとにアクティブな従業員によるすべての労働記録を外部結合する必要があります。次に、日付ごとに各従業員の労務トランザクション数をカウントします。
これは Crystal Report に渡され、特定の日付範囲 (ビューによる +/- 30 の範囲内) に基づいてフィルター処理されます。そこから、すべての日数が Crystal の従業員ごとに合計され、トランザクションがゼロの従業員が表示されます。
問題
すべての日付のリストを吐き出さずに、最初は日付ごとに労働トランザクションを使用していますが、日付のカウントがないものもあります。これらの人々は、ゼロ時間でヌルの取引日を示しています。これは、期間全体で料金が発生しないことを示しており、これは理にかなっています。
ただし、Crystal がそのデータをフィルター処理して範囲を選択すると、これらの null 値が除外されるため、時間がない人をすべて表示することができないと思います。
質問
ビューで「(sysdate+30) と (sysdate-30) の間のすべての日付を選択する」に相当する方法はありますか?
SQL(参考)
sql - 表から連続範囲を選択
連続する番号(列N)と、これらの番号が関連する同じ「カテゴリ」(下の列C)に基づいて、テーブルから連続範囲を抽出する必要があります。グラフィック的には次のようになります。
SQLServerは2005年です。ありがとう。
sql - SQL:任意の一連の日付のギャップを検出する組み込みの方法?
履歴レポートにフィードする一連のテーブルがあります。現在、レポートの生成には時間がかかります。コンパイルされたデータを格納してレポートにフィードするキャッシュテーブルを作成したいと思います。
これらのキャッシュテーブルの1つのキーは、日付フィールドになります。使用する一連の日付にギャップがないことを確認したいと思います。たとえば、1月1日と3日のレコードは必要ありませんが、2番目の日付には行がありません。
RDBMSのリレーショナルツールでこれを強制する方法を考えることはできません。関連するレコードが一連の日付の範囲外にならないように日付のテーブルを設定できます。つまり、「日付シリーズ」テーブルに一致する行がない場合は1月2日を禁止しますが、範囲内の日付をスキップしないように自動的に確認する方法がわかりません。
データベーススキーマ定義でこれを自動的に行う方法はありますか?または、コードのギャップをチェックする必要がありますか?
MySQLを使用していますが、これはRDBMSに依存しないようです。