PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres generiert ein Array mit dem Folienfenster

Dies liegt höchstwahrscheinlich daran, dass dbplyr keine Übersetzungen zum Konvertieren von na.omit definiert hat oder str_count in postgresql (eine Übersetzung für paste ist höchstwahrscheinlich definiert).

Sie können str_count ersetzen und na.omit indem Sie früher nach fehlenden Werten suchen.

st2tm %>% 
  mutate(
    p1 = lag(pid),
    p2 = lead(pid)
  ) %>% 
  filter(!is.na(p1),
         !is.na(p2)) %>%
  mutate(g = paste(p1, ",", pid, ",", p2)) %>% 
  select(-c(p1, p2)) %>% 

Und wenn paste ist das Problem, dass Sie es durch den integrierten CONCAT von postgresql ersetzen könnten Funktion.

st2tm %>% 
  mutate(
    p1 = lag(pid),
    p2 = lead(pid)
  ) %>% 
  filter(!is.na(p1),
         !is.na(p2)) %>%
  mutate(g = CONCAT(p1, ",", pid, ",", p2)) %>% 
  select(-c(p1, p2)) %>% 

Denn CONCAT keine R-Funktion ist, wird dbplyr sie wie geschrieben an postgresql übergeben, anstatt zu versuchen, sie zu übersetzen.