У меня есть запрос со следующим результатом:Ранжирование базы на две даты в Oracle
Я думал, что я мог бы использовать dense_rank
групповому пользовательского сегмента в интервале времени. Но это не сработает.
CUST_ID EVENT_ID SEGMENT_ID SEGMENT_CODE DATE_FROM DATE_TO
100 1424 21 A 2011.01.05. 13:03:12 2011.01.06. 23:40:13
100 1566 21 A 2011.01.06. 23:40:13 2011.02.28. 11:48:52
100 1580 21 A 2011.02.28. 11:48:52 2012.04.30. 2:49:53
100 1601 45 Y 2012.04.30. 2:49:53 2012.05.29. 21:12:27
100 1663 45 Y 2012.05.29. 21:12:27 2012.05.30. 11:11:23
100 1710 45 Y 2012.05.30. 11:11:23 2012.08.01. 5:14:36
100 1875 114 H 2012.08.01. 5:14:36 2012.09.01. 20:26:42
100 1880 33 F 2012.09.01. 20:26:42 2012.09.03. 9:12:23
100 1901 21 A 2012.09.03. 9:12:23 2012.09.03. 9:12:23
100 1903 21 A 2012.09.03. 9:12:23 2012.10.25. 17:25:14
100 1966 223 R 2012.10.25. 17:25:14 2013.01.01. 1:12:55
100 2011 223 R 2013.01.01. 1:12:55 3500:12:31. 23:59:59
Я хотел бы что-то вроде этого:
CUST_ID EVENT_ID SEGMENT_ID SEGMENT_CODE DATE_FROM DATE_TO DENSE_RANK
100 1424 21 A 2011.01.05. 13:03:12 2011.01.06. 23:40:13 1
100 1566 21 A 2011.01.06. 23:40:13 2011.02.28. 11:48:52 1
100 1580 21 A 2011.02.28. 11:48:52 2012.04.30. 2:49:53 1
100 1601 45 Y 2012.04.30. 2:49:53 2012.05.29. 21:12:27 2
100 1663 45 Y 2012.05.29. 21:12:27 2012.05.30. 11:11:23 2
100 1710 45 Y 2012.05.30. 11:11:23 2012.08.01. 5:14:36 2
100 1875 114 H 2012.08.01. 5:14:36 2012.09.01. 20:26:42 3
100 1880 33 F 2012.09.01. 20:26:42 2012.09.03. 9:12:23 4
100 1901 21 A 2012.09.03. 9:12:23 2012.09.03. 9:12:23 5
100 1903 21 A 2012.09.03. 9:12:23 2012.10.25. 17:25:14 5
100 1966 223 R 2012.10.25. 17:25:14 2013.01.01. 1:12:55 6
100 2011 223 R 2013.01.01. 1:12:55 3500:12:31. 23:59:59 6
Есть ли у вас какие-либо идеи, как я могу решить эту проблему?
Какой запрос вы пробовали? Что-то вроде 'DENSE_RANK() OVER (PARTITION BY SEGMENT_ID ORDER BY DATE_FROM)" dense_rank "'? Неясно, что вы намерены «сегментом пользователя за промежуток времени» ... – EmirCalabuch
Что означает «не работает»? Как выглядит ваш запрос? Что с этим не так? Вы получаете сообщение об ошибке? Неверные данные? Какова логика вашего вывода? Почему ваш вывод идентичен вашему вводу? – Ben
Не могу объяснить правильно. Но я попробую. В запросе показан один период жизни сегмента клиента. – Shylock