SQL を使用した連続する日付範囲の検出
日付の列内の連続する日付範囲を決定するには、SQL テクニックを使用できます。カレンダー オブジェクトに開始日と終了日の情報が必要で、特定の列に一連の日付が含まれており、隣接する日付と隣接しない日付が含まれるシナリオを考えてみましょう。これらの連続した範囲を効率的に識別するには、堅牢な SQL ソリューションが求められます。
1 つのアプローチには、日付値と行番号の差によってグループ化するときに、連続するシーケンスの不変特性を利用することが含まれます。次に、各グループ内の開始日と終了日がそれぞれ最小値と最大値として取得されます。
次の SQL クエリは、このアプローチを示しています。
WITH t AS ( SELECT InfoDate d,ROW_NUMBER() OVER(ORDER BY InfoDate) i FROM @d GROUP BY InfoDate ) SELECT MIN(d),MAX(d) FROM t GROUP BY DATEDIFF(day,i,d)
このクエリは、日付を効果的にグループ化します。対応する行番号との差により、連続するシーケンスごとに個別のグループが作成されます。次に、各グループ内の最小日付と最大日付が開始範囲と終了範囲を表すために選択されます。
このメソッドを利用すると、目的の出力を取得でき、日付範囲の差によって並べ替えられた連続する日付範囲の包括的なリストが提供されます。開始日と終了日。
以上がSQL はデータセット内の連続する日付範囲をどのように識別できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。