Rstudio 操作mysql實現行轉列
# 加載類庫 require(RMySQL) library(RMySQL) # 建立本地連接 con<-dbConnect(MySQL(),host='xxxx',port=xxx,dbname="xx",user="xx",password="xxxx") # 修改編碼 , 否則會出現中文亂碼 dbSendQuery(con, "SET NAMES gbk") # 查看數據表 dbListTables(con) # 查看表字段 dbListFields(con, "xx") # 查詢MySQL信息 summary(MySQL(), verbose = TRUE) # mysql 連接示例信息 summary(con, verbose = TRUE) # MySQL鏈接信息 dbListConnections(MySQL()) # 數據查詢 # 編輯查詢語句 query_0 = "select a.point_name ,a.monitor_time ,a.pm25 from xx a where a.region_code='xx' and DATE_FORMAT(a.monitor_time,'%Y%m')='201811' GROUP BY a.monitor_time ORDER BY a.monitor_time;" # 轉置 query_1="select a.monitor_time as mon_time ,MAX(case a.point_name WHEN '開封' then a.pm25 else 0 END) '開封' ,MAX(case a.point_name WHEN '婦幼保健院' then a.pm25 else 0 END) '婦幼保健院' ,MAX(case a.point_name WHEN '龍亭公園' then a.pm25 else 0 END) '龍亭公園' ,MAX(case a.point_name WHEN '世紀星幼兒園' then a.pm25 else 0 END) '世紀星幼兒園' ,MAX(case a.point_name WHEN '腫瘤醫院' then a.pm25 else 0 END) '腫瘤醫院' from xx a where a.region_code='xx' and DATE_FORMAT(a.monitor_time,'%Y%m')='201811' GROUP BY a.monitor_time ORDER BY a.monitor_time;" # 執行查詢 d0 <- dbGetQuery(con, query_1) # 關閉連接 dbDisconnect(con)
原數據輸出
目標結果輸出