有一张广告表advertise(advertise_id,date,count),数据如下:
我需要统计出某一时间段内排名前10的广告,在这个时间段内每天的点击量。
查询出来的结果应该是每一天都有10条不同advertise_id的数据,这个sql应该怎么写?
有一张广告表advertise(advertise_id,date,count),数据如下:
我需要统计出某一时间段内排名前10的广告,在这个时间段内每天的点击量。
查询出来的结果应该是每一天都有10条不同advertise_id的数据,这个sql应该怎么写?
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
应该是这样的吧
8 回答6.4k 阅读
5 回答3.3k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
1 回答4.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
2 回答3.2k 阅读
有个问题是没出现在记录中的广告日期点击数显不显示,如果要显示的话就需要先构造出这部分数据,不显示就用下面这个sql就好