PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

postgres génère un tableau à l'aide d'une fenêtre de diapositive

Cela est probablement dû au fait que dbplyr n'a pas de traductions définies pour convertir na.omit ou str_count en postgresql (une traduction pour paste est très probablement défini).

Vous pouvez remplacer str_count et na.omit en vérifiant plus tôt les valeurs manquantes.

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)) %>% 

Et si paste est le problème que vous pourriez remplacer par le CONCAT intégré de postgresql fonction.

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)) %>% 

Parce que CONCAT n'est pas une fonction R, dbplyr la transmettra telle quelle à postgresql plutôt que d'essayer de la traduire.