問題タブ [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.
sql - 何もないクエリからの戻りに日付を挿入します
1時間、1日あたりのイベント数をカウントするクエリを作成しています。ほとんどの日はアクティビティがない時間帯があるため、クエリが実行されると1時間あたりのアクティビティ数が表示されますが、ギャップがあり、クエリはこれらを除外します。それでも、アクティビティがない時間を表示し、ゼロを表示して、ゼロ値をグラフ化できるようにします。使用しているクエリは次のようになります…</p>
sql-server - SQLServerを使用して範囲値をグループ化する方法
私はこのような値の表を持っています
ご覧のとおり、最初の番号に追加された2番目の番号は、シーケンスの次の番号の1つ前です。最後の数値は範囲内にありません(次の値のように、直接のシーケンスには従いません)。私が必要としているのは、これを出力するCTE(はい、理想的には)です
最初の行には、範囲の開始番号が含まれ、次にその中のノードの合計が含まれます。次の行は次の範囲であり、この例では元のデータと同じです。
mysql - 2 つの日付の間の日付のリストを取得する
標準の mysql 関数を使用して、2 つの日付の間の日数のリストを返すクエリを作成する方法があります。
たとえば、2009-01-01 と 2009-01-13 を指定すると、次の値を持つ 1 列のテーブルが返されます。
編集:私ははっきりしていないようです。このリストを生成したい。データベースに(日時ごとに)値を保存していますが、上記のように日付のリストへの左外部結合でそれらを集計したいです(この結合のいくつかの右側から数日間nullを期待しており、これを処理します)。
sql - SQL Server で未使用の最小数を見つける
SQL Server 列で使用されていない最小の数値を見つけるにはどうすればよいですか?
手動で記録された大量のレコードを Excel から SQL Server テーブルにインポートしようとしています。それらはすべて数値 ID (文書番号と呼ばれる) を持っていますが、もはや適用されない理由により、順番に割り当てられていませんでした。つまり、今後、私の Web サイトが新しいレコードを記録するとき、可能な限り小さい文書番号を割り当てる必要があります (ゼロより大きい) まだ取得されていません。
プレーン SQL でこれを行う方法はありますか、それとも TSQL/コードの問題ですか?
ありがとう!
編集
並行性の問題を提起してくれたWWに特に感謝します。これが Web アプリであることを考えると、定義上マルチスレッドであり、同じ問題に直面した場合は、競合を防ぐためにコードまたは DB レベルのロックを検討する必要があります。
リンク
参考までに-これは、次のコードを使用してLINQを介して実現できます。
nextNewNum == 5
sql - T-SQL で前月のデータに基づいて欠落している月の値を決定する方法
特定の時点で発生する一連のトランザクションがあります。
データは次のようになります。
TransactionValue が何らかのレベルを設定すると仮定すると、トランザクション間のレベルを知る必要があります。これは一連の T-SQL クエリのコンテキストで必要なので、次のような結果セットを取得できれば最適です。
月ごとに、トランザクションで指定された値を取得する方法、または最新の null 以外の値を取得する方法に注意してください。
私の問題は、これを行う方法がほとんどわからないことです! 私は「中級」レベルの SQL 開発者にすぎませんが、これまでにこのようなものを見た覚えはありません。当然、必要なデータをプログラムで作成したり、カーソルを使用して作成したりできますが、これを行うためのより良いセット指向の方法があるかどうかを知りたいです。
私は SQL Server 2008 を使用しているので、役立つ新機能があれば教えてください。
PS誰かがこの質問を述べるより良い方法、またはより良い件名を考えることができれば、私はそれを大いに感謝します. 「スプレッド」は不自由ですが、私が思いつくことができる最高のものであると判断するのにかなりの時間がかかりました. 「スミア」はもっとひどい音でした。
mysql - MySQL: レコードが存在しない場合でも範囲内のすべての日付を選択する
ユーザーのデータベースがあります。ユーザーベースの成長に基づいてグラフを作成したいと思います。私が今持っているクエリは次のとおりです。
これは、私が望むものをほとんど返します。ある日に 0 ユーザーを取得した場合、その日は 0 値として返されず、単にスキップされ、少なくとも 1 人のユーザーがいる翌日が返されます。(疑似応答)のようなものを取得するにはどうすればよいですか:
ゼロの日付は、残りの日付とともに順番に表示されますか?
ありがとう!
sql-server-2005 - 欠落しているシーケンス番号を見つけるためのSQLクエリ
という名前の列がありますsequence
。この列のデータは、1、2、3、4、5、7、9、10、15のようになります。
テーブルから欠落しているシーケンス番号を見つける必要があります。どのSQLクエリが私のテーブルから欠落しているシーケンス番号を見つけますか?私は次のような結果を期待しています
私は1つのテーブルのみを使用しています。以下のクエリを試しましたが、希望する結果が得られません。
mysql - SQLの連続行のGROUPBY
次の表があるとします。
質問:
状態の変化の間の境界を維持しながら、フィールド「状態」でグループ化するにはどうすればよいですか?
結果は次のようになります。
しかし、これは望ましい出力です。
これはSQLで可能ですか?私は今のところ解決策を見つけられませんでした...
sql - アクセスの最小連続日数を決定するSQL?
次のユーザー履歴テーブルには、特定のユーザーが Web サイトにアクセスした日 (24 時間の UTC 期間) の 1 つのレコードが含まれています。何千ものレコードがありますが、ユーザーごとに 1 日あたり 1 つのレコードしかありません。ユーザーがその日に Web サイトにアクセスしなかった場合、レコードは生成されません。
私が探しているのは、このテーブルに対するパフォーマンスの良い SQL クエリです。これは、どのユーザー ID が (n) 日間連続して Web サイトにアクセスしたかを 1 日も逃さずに教えてくれます。
言い換えると、このテーブルに連続した (前日または翌日の) 日付を持つ (n) レコードを持つユーザーは何人ですか? シーケンスに欠落している日がある場合、シーケンスは壊れており、1 から再開する必要があります。ここで連続日数を隙間なく達成しているユーザーを募集しています。
もちろん、このクエリと特定のスタック オーバーフロー バッジとの類似点はまったくの偶然です.. :)
sql - SQL でカウンターを実行する際の「ギャップ」を見つけるにはどうすればよいですか?
SQL テーブルのカウンター列の最初の「ギャップ」を見つけたいと思います。たとえば、値が 1、2、4、5 の場合、3 を見つけたいと思います。
もちろん、値を順番に取得して手動で処理することもできますが、SQL でそれを行う方法があるかどうか知りたいです。
さらに、さまざまな DBMS で動作する、非常に標準的な SQL である必要があります。