[英]Count in two tables connected with left outer join
我需要有关SQL查询的一些帮助。 我想计算2个两个表中的条目数。 我的第一个表tracking_adspace_views从我制作的广告空间的每个视图中获得了条目。 在一天结束时,我想计算一下我昨天有多少个条目。 第二个表tracking_clicks
计算特殊广告空间的点击次数。 因此,并非每个被查看的广告空间都有点击。 所以最后我想要
我的桌子看起来像这样
tracking_adspace_views
tracking_clicks
我的查询如下所示:
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时也算正确。 但是,如果点击列中有点击,我会从视图中获取价值。 谢谢你的帮助:)
问候
您似乎正在对将由联接重复的行中的值进行计数。
试试这样的东西:
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
我希望您有一个名为tracking_adspaces
的第三张表,其主键名为tracking_adspace
。 如果这样做,则可以执行以下操作:
select '2013-10-13' as TrackingDate,
A.tracking_adspace
V.views,
C.clicks
from tracking_adspaces A
left join (
select tracking_adspace, count(tracking_id) as views
from views
where DATE(tracking_time) = '2013-10-31'
group by tracking_adspace
) V on A.tracking_adspace = V.tracking_adspace
left join (
select tracking_adspace, count(tracking_id) as clicks
from tracking_clicks
where DATE(tracking_time) = '2013-10-31'
group by tracking_adspace
) C on A.tracking_adspace = C.tracking_adspace
如果没有,您可以使用
select '2013-10-13' as TrackingDate,
distinct(A.tracking_adspace)
V.views,
C.clicks
from views A
left join (
(etc)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.