Postgres Count IS不运行准确的结果
我有此Postgres查询可以通过从多个表查询2列从2列返回计数。
这是一个例子:
SELECT
subscribers.email,
COUNT(campaign_views.subscriber_id) AS views,
COUNT(link_clicks.subscriber_id) AS clicks
FROM campaign_views, link_clicks, subscribers, links
WHERE campaign_views.campaign_id = 586
AND link_clicks.campaign_id = 586
AND link_clicks.link_id = links.id
AND subscribers.channel = 'email'
AND subscribers.id = campaign_views.subscriber_id
AND subscribers.id = link_clicks.subscriber_id
GROUP BY subscribers.id
问题是所有这样的人的数量结果是相同的:
views | clicks
16 16
6 6
2 2
4 4
请有什么想法吗?
I have this Postgres query to return a count from 2 columns by querying from multiple tables.
Here is the example:
SELECT
subscribers.email,
COUNT(campaign_views.subscriber_id) AS views,
COUNT(link_clicks.subscriber_id) AS clicks
FROM campaign_views, link_clicks, subscribers, links
WHERE campaign_views.campaign_id = 586
AND link_clicks.campaign_id = 586
AND link_clicks.link_id = links.id
AND subscribers.channel = 'email'
AND subscribers.id = campaign_views.subscriber_id
AND subscribers.id = link_clicks.subscriber_id
GROUP BY subscribers.id
The issue is that the COUNT result is the same for all of them like this:
views | clicks
16 16
6 6
2 2
4 4
Any ideas please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您
正在创建一个
CROSS JOIN
。表
a
和表
b
的示例在
您生成时:
当您执行时:
您将收到:
COUNT()
返回全部列。在CROSS JOIN
的结果中,您为所有列生成了3 * 2 = 6
记录。因此,您得到的所有结果都是相同的,这是有道理的。With
you are creating a
CROSS JOIN
.Example with table
a
and table
b
With
you're generating:
When you'd execute:
you'll receive:
COUNT()
returns all columns. In the result of yourCROSS JOIN
you generated3 * 2 = 6
records for all columns. So, it makes sense, that all results you get are the same.因此,我设法以准确的结果进行了计数。
So I managed to do the count with the accurate result.