有一个公司叫月亮集团,他们旗下有很多网站每天都有很多人访问。于是成立了广告部,让其他公司来在他们的页面上放广告,从而收费。
公司表
公司名称 | 公司编号(自增主键) | 电话号码 |
|---|---|---|
A | 1001 | xx |
B | 1002 | xx |
广告表
广告编号 | 有该广告的公司的编号(自增主键) | 广告收费/点击一次 |
|---|---|---|
1 | 1001 | 2 |
2 | 1001 | 3 |
3 | 1002 | 2 |
点击表
广告编号 | 该广告发送给浏览者的日期 |
|---|---|
1 | 101101 |
2 | 101102 |
1 | 101323 |
3 | 111232 |
直接查询公司表的 公司名称 字段
select 公司名称 from 公司表;
结果为A,B公司投放了广告
先到公司表,将公司名称=A的编号提取出来,然后将公司编号作为条件去广告表里找广告编号。
select 广告编号 from 广告表 where 公司编号 = (select 公司编号 from 公司表 where 公司名称=A);
结果为A公司投放了编号为1,2的广告
A公司10月份广告费=1广告次数 X 1广告的价格+2广告次数 X 2广告价格
先查出A公司放了哪些广告,编号多少,这个上面已经出结果了,得到编号1,2
然后根据编号查出1,2广告每次点击多少钱
select 广告费 from 广告表 where 广告编号=1;
select 广告费 from 广告表 where 广告编号=2;
根据广告编号查出10月份的1广告点击有多少次,日期为秒格式,所以找出10-11月之间的即可匹配。
select 次数 from 点击表 where 编号=1 and 浏览日期 between 100000 and 199999;
select 次数 from 点击表 where 编号=2 and 浏览日期 between 100000 and 199999;
最后做个计算即可
目前有3张表,基本满足业务需求,但未来查询更多,需要重新设计主键位置,表结构。
当数据庞大,首当其冲的是点击表,可能一天有几万次记录写入,这张表将变得庞大,可以考虑将表根据月份进行拆分。
刚才查询A公司需要交费多少,比较繁琐,需要操作多次,可以将sql语句进行优化,查看消耗时间是多少,找出最优的语句和方法。
当前表除了基本的查询,还可以进行数据分析。
可以通过点击表,分析出当前这月哪个广告受欢迎,次数最多。这种可以去和公司商议,建议投放公司将这类广告放到更显眼位置,但费用增加。
可以通过广告表,分析出当前A公司投放多少广告,如果很多说明资金充足,可以商议价格,比如降低广告费,但要求对方投入更多广告。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。