不使用crosstab实现PostgreSQL的行转列应用,crosstabpostgresql
表结构及数据
select logdatetime,sum(login) as login,sum(logo) as logo
from(SELECT date(logdatetime) AS "logdatetime", case logfrom when 'login' then COUNT(id) else 0 end AS "login",
case logfrom when 'logo' then COUNT(id) else 0 end AS "logo"
FROM "log" WHERE date(logdatetime) >= '2014-11-04' AND date(logdatetime) <= '2014-11-05' GROUP BY "logdatetime", "logfrom"
) T
GROUP BY "logdatetime"
ORDER BY "logdatetime" ASC
执行结果
如果表结构在mysql和postgresql的结构差别不大,那么相互迁移是比较简单的。
可以通过用shell脚本来处理能很好的实现。
第一:mysql 导出文本文件。
第二:shell处理文本文件的格式,使之适合postgresql导入格式,生成至目标文本文件。
第三:在postgresql中执行目标文本文件即可。
我还暂时找不到方法解决。每次增加列,都是重做。其他改动应该可以在 edit soure 中完成。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。