sql >> Databasteknik >  >> RDS >> PostgreSQL

postgres genererar array med hjälp av slide window

Detta beror troligen på att dbplyr inte har översättningar definierade för konvertering av na.omit eller str_count till postgresql (en översättning för paste är mest troligt definierad).

Du kan ersätta str_count och na.omit genom att kontrollera tidigare för saknade värden.

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

Och om paste är problemet du kan ersätta det med postgresqls inbyggda CONCAT 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)) %>% 

Eftersom CONCAT är inte en R-funktion kommer dbplyr att skicka den som skriven till postgresql istället för att försöka översätta den.




  1. mysql välj tidsstämplar mellan a och b och returnerar alla eller 0 tidsstämplar

  2. Välj antal / dubbletter

  3. sqlalchemy.exc.NoSuchModuleError:Kan inte ladda plugin:sqlalchemy.dialects:postgres

  4. Returnera främmande nyckel med DQL-fråga