java - 统计出20170403到20170420期间点击量前十的广告每天的点击量
世界只因有你
世界只因有你 2017-05-17 10:08:03
[Java讨论组]

有一张广告表advertise(advertise_id,date,count),数据如下:

我需要统计出某一时间段内排名前10的广告,在这个时间段内每天的点击量。

查询出来的结果应该是每一天都有10条不同advertise_id的数据,这个sql应该怎么写?

世界只因有你
世界只因有你

全部回复(2)
天蓬老师

有个问题是没出现在记录中的广告日期点击数显不显示,如果要显示的话就需要先构造出这部分数据,不显示就用下面这个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;
ringa_lee
SELECT s.date,s.advertise_id,s.count FROM advertise_stat s
WHERE
    EXISTS (
        SELECT advertise_id FROM (SELECT advertise_id FROM advertise_stat GROUP BY advertise_id ORDER BY count DESC LIMIT 10) AS advertise_temp
        WHERE advertise_id = s.advertise_id
    )
AND s.date BETWEEN 20170403 AND 20170420
ORDER BY s.date ASC,s.count DESC

应该是这样的吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号