我试图在Postgres中建立一个查询。我的背景是SQL Server,所以我遇到了一些语法上的挑战。我的查询需要击中两个单独的服务器上的两个单独的数据库。我需要在数据集之间做一个连接。实际上,我在db1中有一个包含用户登录活动的表。每次用户登录网站,都会添加一个条目。在db2上,我有一个购买表。对于每一天,我需要看到:有多少人登录,有多少登录的用户进行了购买。
我的表是这样的:
Logins Purchases
--------- ---------
ID User_ID
User_ID Amount
LoginDate
如果我的purchase表上有一个日期字段,这将很容易。但事实并非如此。因此,目前,我正在尝试以下操作:
SELECT
// Somehow get the number of logins for the given day here
// Somehow I need to get the number of purchases for the given day here
TO_CHAR(TO_TIMESTAMP((LoginDate/1000) - 14400), 'MM/DD/YYYY') AS the_day
FROM
db1.Logins AS t1,
db2.Purchases as t2
GROUP BY the_day
ORDER BY the_day;
我如何得到每天在Postgres的登录和购买的数量?谢谢你!
PostgreSQL不支持跨数据库查询。大多数想要"跨数据库"查询的人都使用单个数据库,其中包含多个模式。我不确定MS-SQL,但MySQL的"数据库"更像PostgreSQL的"模式"。
如果需要跨数据库查询,必须使用DBLink或postgresql -fdw。或者您可以复制数据—查看Londiste、lonny - i或简单的cronjob。