Привет всем, я пишу sql запрос на R с использованием sqldf и, похоже, попал в контрольно-пропускной пункт. У меня есть таблица со столбцом Id, двумя столбцами дат и группировкой по столбцам.
AlertDate AppointmentDate ID Branch
01/01/20 04/01/20 1 W1
01/01/20 09/01/20 1 W1
08/01/20 09/01/20 1 W2
01/01/20 23/01/20 1 W1
Я пишу запрос:
sqldf('select Branch,count(ID) from df where AlertDate <= AppointmentDate
and AppointmentDate <AlertDate+7 group by Branch')
Из этого запроса результат I ' м получается
Branch Count
W1 1
W2 1
Что правильно на основании запроса. Чего я хочу достичь, так это если мое второе условие ложно ie AppointmentDate меньше AlertDate + 7. Вместо того, чтобы сбрасывать счет, он должен учитываться в следующей группе в зависимости от даты. Например, если alerttdate - 01/01/20, а дата встречи - 23.01.20, тогда он должен учитываться в W4. ceil ((Appointmentdate-alertstdate) / 7) ТАК В конце я хочу получить результат как
Branch Count
W1 1
W2 2
W4 1
Второй ряд должен учитываться в W2, а 4-й должен быть в W4, а не отбрасываться. Я пытался добиться этого в sql с использованием sqldf в R. Любое возможное решение с использованием R или Sql будет работать для меня.
Вывод dput (тест)
structure(list(AlertDate = structure(c(18262, 18262, 18269, 18262), class = "Date"), AppointmentDate = structure(c(18265, 18270,18270, 18284), class =
"Date"), ID = c(1, 1, 1, 1), Branch = c("W1","W1", "W2", "W1")), class = c("spec_tbl_df", "tbl_df", "tbl","data.frame"), row.names = c(NA, -4L), problems =
structure(list( row = 4L, col = "Branch", expected = "", actual = "embedded null",
file = "'C:/Users/FRssarin/Desktop/test.txt'"), row.names = c(NA,-1L), class = c("tbl_df", "tbl", "data.frame")), spec = structure(list( cols = list(AlertDate =
structure(list(format = "%d/%m/%y"), class = c("collector_date",
"collector")), AppointmentDate = structure(list(format = "%d/%m/%y"), class = c("collector_date", "collector")), ID = structure(list(), class = c("collector_double", "collector")), Branch = structure(list(), class =
c("collector_character", "collector"))), default = structure(list(), class = c("collector_guess", "collector")), skip = 1), class = "col_spec"))
![enter image description here](https://i.stack.imgur.com/PkF5R.png)