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. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?2. python沒入門,請教一個問題3. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現4. php如何獲取訪問者路由器的mac地址5. html - 爬蟲時出現“DNS lookup failed”,打開網頁卻沒問題,這是什么情況?6. html5 - input type=’file’ 上傳獲取的fileList對象怎么存儲于瀏覽器?7. 求教一個mysql建表分組索引問題8. node.js - 用nodejs 的node-xlsx模塊去讀取excel中的數據,可是讀取出來的日期是數字,請問該如何讀取日期呢?9. javascript - vue-resource中如何設置全局的timeout?10. javascript - 在 vue里面用import引入js文件,結果為undefined
