ホームページ >データベース >mysql チュートリアル >SQL で重複する日付間隔を効率的にマージするにはどうすればよいですか?
データ分析の領域では、重複する時間範囲または日付間隔が発生することがよくあります。これらの重複する間隔を個別のレコードに効果的にマージするには、堅牢で効率的なソリューションが必要です。
ループ内で一連の UPDATE ステートメントを使用して、重複する日付間隔をマージする 1 つの簡単なアプローチが指定された質問で示されています。この方法では望ましい結果が得られますが、より洗練された、またはパフォーマンスの高いソリューションがあるのではないかという懸念が生じます。
提供された回答で実装された代替アプローチは、相関サブクエリと NOT EXISTS 条件の威力。このアプローチには、重複する間隔を特定してマージするために連携して動作する複数の SQL ステートメントが含まれます。
SELECT s1.StartDate, --t1.EndDate MIN(t1.EndDate) AS EndDate FROM @T s1 INNER JOIN @T t1 ON s1.StartDate <= t1.EndDate AND NOT EXISTS(SELECT * FROM @T t2 WHERE t1.EndDate >= t2.StartDate AND t1.EndDate < t2.EndDate) WHERE NOT EXISTS(SELECT * FROM @T s2 WHERE s1.StartDate > s2.StartDate AND s1.StartDate <= s2.EndDate) GROUP BY s1.StartDate ORDER BY s1.StartDate
手順の詳細:
このアプローチでは、以前の方法に比べてパフォーマンスと明瞭さが向上します。反復的な UPDATE メソッドであり、SQL 環境で重複する日付間隔をマージするための推奨ソリューションとなります。
以上がSQL で重複する日付間隔を効率的にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。