J'essaie de fusionner des lignes avec des intervalles de date qui se chevauchent dans une table dans Impala SQL. Cependant, les solutions que j'ai trouvées pour résoudre ce problème ne sont pas supportées par Impala par exemple. O WH EXISTE et CTE récursif.Impala SQL: Fusion de lignes avec des dates qui se chevauchent. WHERE EXISTS et CTE récursif non pris en charge
Comment pourrais-je écrire une requête pour cela dans Impala?
Table: @T
ID StartDate EndDate
1 20170101 20170201
2 20170101 20170401
3 20170505 20170531
4 20170530 20170531
5 20170530 20170831
6 20171001 20171005
7 20171101 20171225
8 20171105 20171110
Required Output:
StartDate EndDate
20170101 20170401
20170505 20170831
20171001 20171005
Exemple de ce que je suis en train d'y arriver est pas prise en charge Impala:
SELECT
s1.StartDate,
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
des questions similaires:
Merge overlapping date intervals
Eliminate and reduce overlapping date ranges
https://gerireshef.wordpress.com/2010/05/02/packing-date-intervals/
https://www.sqlservercentral.com/Forums/Topic826031-8-1.aspx
Par tous les moyens, utiliser le format ISO pour les dates: AAAA-MM-JJ –