什么应该是在Mysql中创建逻辑视图的查询?

时间:2012-12-16 18:08:03

标签: mysql

我必须在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进行查询吗?

1 个答案:

答案 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 true1false0,所以总结一个布尔计数这是多少次。