gpt4 book ai didi

mysql - 计算通过左外连接连接的两个表

转载 作者:行者123 更新时间:2023-11-30 01:06:14 26 4
gpt4 key购买 nike

我需要一些关于 SQL 查询的帮助。我想计算两个表中的条目数。我的第一个名为tracking_adspace_views 的表从我制作的Adspace 的每个 View 中获取了条目。在一天结束时,我想计算一下我昨天有多少条目。第二个表 tracking_clicks 统计特殊广告空间的点击次数。因此,并非每个被查看的广告空间都有点击。所以最后我想要类似的东西

  • Adspace ID 1 有 500 次浏览和 3 次点击
  • Adspace ID 2 拥有 340 次浏览和 0 次点击
  • 等等...

我的表格看起来像这样

tracking_adspace_views

enter image description here

跟踪点击次数

enter image description here

我的查询如下所示:

SELECT  '2013-10-31', 
views.tracking_adspace,
COUNT(views.tracking_adspace) AS tracking_adspace_views,
COUNT(clicks.tracking_adspace) AS tracking_adspace_clicks
FROM views
LEFT JOIN (
SELECT tracking_adspace,
COUNT(sub_c.tracking_adspace) AS tracking_adspace_clicks
FROM tracking_clicks as sub_c
GROUP BY sub_c.tracking_adspace
) AS clicks
ON clicks.tracking_adspace = views.tracking_adspace
WHERE views.tracking_time LIKE '2013-10-31%'
GROUP BY views.tracking_adspace

这样可以正确计算观看次数,并且点击次数为 0 的情况也可以正确计算。但是,如果点击列中有点击,我会从 View 中获取值。感谢您的帮助:)

问候

最佳答案

您似乎正在对连接将重复的行中的值进行计数。

尝试这样的事情:-

SELECT  '2013-10-31' AS TrackingDate, 
views.tracking_adspace,
COUNT(views.tracking_adspace) AS tracking_adspace_views,
clicks.tracking_adspace_clicks
FROM views
LEFT JOIN
(
SELECT tracking_adspace,
DATE(tracking_time) AS TrackingDate,
COUNT(tracking_adspace) AS tracking_adspace_clicks
FROM tracking_clicks
GROUP BY tracking_adspace
) AS clicks
ON clicks.tracking_adspace = views.tracking_adspace
AND DATE(views.tracking_time) = clicks.TrackingDate
WHERE DATE(views.tracking_time) = '2013-10-31'
GROUP BY TrackingDate, views.tracking_adspace, clicks.tracking_adspace_clicks

关于mysql - 计算通过左外连接连接的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19724108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com