我必须在mysql中写一个查询。下面是我的ad_display表
ad_displaysId | adv_id | campaign_id | adtypeId | clicked(boolean)
我有另一个表格名称为广告,其中包含ad_id
ad_id | advertisename
cammpaignId在此表名称中为camp_table
campaign_id | camp_name
adtypeId在此表名称中为adtype
adtypeId | adtype_name
现在我想要的是创建一个视图,从我的ad_display表
中给出这样的结果advertise_name | camp_name | adtype_name | count_of_clicked | count_of_row
这里
count_of_clicked = count of row where adv_id=? campaignId=? adtypeId=? clicked=true
count_of_row= count of row where adv_id=? campaignId=? adtypeId=?
我可以给出的附加信息是......在ad_display中有多个条目具有相同的adv_id相同的camp_id相同的ad_typeId与单击的collumn是真或假。
我在mysql中全新。所以任何人都可以建议我使用mysql进行查询吗?
答案 0 :(得分:2)
试试这个:
create view my_ad_view as
select
advertise_name,
camp_name,
adtype_name,
sum(clicked) as count_of_clicked,
count(*) as count_of_row
from ad_display ad
left join advertise a on a.ad_id = ad.ad_displaysId
left join camp_table ct on ct.campaign_id = ad.campaign_id
left join adtype at on at.adtypeId = ad.adtypeId
group by advertise_name, camp_name, adtype_name
请注意sum(clicked)
的好“技巧”,因为在mysql true
中1
而false
是0
,所以总结一个布尔计数这是多少次。