java - 统计出20170403到20170420期间点击量前十的广告每天的点击量
问题描述
有一张广告表advertise(advertise_id,date,count),数据如下:
我需要统计出某一时间段内排名前10的广告,在这个时间段内每天的点击量。
查询出来的结果应该是每一天都有10条不同advertise_id的数据,这个sql应该怎么写?
问题解答
回答1:有个问题是没出现在记录中的广告日期点击数显不显示,如果要显示的话就需要先构造出这部分数据,不显示就用下面这个sql就好
select a.* from advertise a join (select advertise_id,sum(count) sm from advertise group by advertise_id order by sm desc limit 10) b on a.advertise_id=b.advertise_id where a.date BETWEEN 20170403 AND 20170420 order by a.date,a.count;回答2:
SELECT s.date,s.advertise_id,s.count FROM advertise_stat sWHERE EXISTS (SELECT advertise_id FROM (SELECT advertise_id FROM advertise_stat GROUP BY advertise_id ORDER BY count DESC LIMIT 10) AS advertise_tempWHERE advertise_id = s.advertise_id )AND s.date BETWEEN 20170403 AND 20170420ORDER BY s.date ASC,s.count DESC
应该是这样的吧
相关文章:
1. css - 文字排版问题,内容都是动态抓出来的,字数不一定。如何对齐啊2. javascript - Ajax返回json格式之后的数据解析后取出来的数据为undefined?3. git - 在web应用分布式部署的情况下怎么进行配置更新4. css3 - 微信前端页面遇到的transition过渡动画的bug5. 前端 - WebStrom安装了angularjs插件,但是没有语法提示6. 网页爬虫 - 关于Python的编码与解码问题7. 微信开放平台 - ios APP能不能打开微信然后通过微信跳转到指定的URL?8. selenium-selenium-webdriver - python 将当前目录加入到 环境变量9. javascript - imgzoom插件所引发的bug血案!!!!10. php ZipArchive关于不同目录文件压缩

网公网安备