我有一个Postgres
数据库。我想从某个表中找到名为calendarid
的列的最小值,该列的类型为整数,格式为yyyymmdd
。我可以通过以下代码完成此操作。
get_history_startdate <- function(src) {
get_required_table(src) %>% # This gives me the table tbl(src, "table_name")
select(calendarid) %>%
as_data_frame %>%
collect() %>%
min() # Result : 20150131
}
但是这种方法非常慢,因为它将数据库中的所有数据加载到内存中。任何想法我怎样才能改进它?
答案 0 :(得分:2)
get_required_table(src) %>%
summarise(max(calendarid, na.rm = TRUE)) %>%
pull
将运行相应的SQL查询。
答案 1 :(得分:1)
如果您只想在整个表格中使用calendarid
列的最小值,请使用以下内容:
SELECT MIN(calendarid) AS min_calendarid
FROM your_table;
我并不完全知道你的R代码在幕后做什么,但是如果它将整个表从Postgres引入R,那么它就非常浪费了。如果是这样,那么直接在Postgres上运行上述查询可以提高性能。