我必须创建一个每月自动编译的报告。该报告只需要是2个应用程序(Rails应用程序,称为应用程序A和B)的电话号码的唯一计数。每个应用程序都有一个PostgreSQL数据库,电话号码是表格中的列。在每个应用程序中获取唯一的电话号码数很容易,只是一个'SELECT COUNT(DISTINCT phone_number)...'查询。然而,我不能想出一个简单/有效的方式来跨越两个应用程序(另外,应用程序A在表中有500k条记录,应用程序B有8k条记录)。看起来我必须从两张桌子上拿出所有电话号码,把它们放在一起,然后丢弃重复。问题在于内存中处理的记录太多。对报告的建议
任何人都有最好的方法来做到这一点的意见?下面是一些额外的信息:
- 这两个应用程序在同一台服务器
- 数据库服务器也是这个服务器
- 的应用程序在不同的数据库上
- 生成/电子邮件发送的报告将是一个cron工作
- 我宁愿做最红宝石编程,最好的应用程序之一
这些表位于不同的数据库中。我希望它是这么简单: – Austin 2012-02-23 05:03:50
我错过了,对不起。但是对于组合和uniq!,这仍然有效,不是吗? – xlash 2012-02-23 15:05:19
是的,这是可行的,但这不是我的问题。 Rubyist,所以如何从数组中抛出重复项并不是我正在寻找的答案,我需要建议_automatically_获得总的唯一数字计数的最佳方法。我的第一个想法是只从每个数据中提取数据,将它转储到一个文件中,然后让另一个脚本执行上面的操作,问题是500k条记录太多(太慢) – Austin 2012-02-23 15:18:37