java - 統(tǒng)計(jì)出20170403到20170420期間點(diǎn)擊量前十的廣告每天的點(diǎn)擊量
問(wèn)題描述
有一張廣告表advertise(advertise_id,date,count),數(shù)據(jù)如下:
我需要統(tǒng)計(jì)出某一時(shí)間段內(nèi)排名前10的廣告,在這個(gè)時(shí)間段內(nèi)每天的點(diǎn)擊量。
查詢出來(lái)的結(jié)果應(yīng)該是每一天都有10條不同advertise_id的數(shù)據(jù),這個(gè)sql應(yīng)該怎么寫?
問(wèn)題解答
回答1:有個(gè)問(wèn)題是沒(méi)出現(xiàn)在記錄中的廣告日期點(diǎn)擊數(shù)顯不顯示,如果要顯示的話就需要先構(gòu)造出這部分?jǐn)?shù)據(jù),不顯示就用下面這個(gè)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
應(yīng)該是這樣的吧
相關(guān)文章:
1. mysql 可以從 TCP 連接但是不能從 socket 鏈接2. java - jdbc如何返回自動(dòng)定義的bean3. javascript - 按鈕鏈接到另一個(gè)網(wǎng)址 怎么通過(guò)百度統(tǒng)計(jì)計(jì)算按鈕的點(diǎn)擊數(shù)量4. mysql updtae追加數(shù)據(jù)sql語(yǔ)句5. 怎么php怎么通過(guò)數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。6. Python處理Dict生成json7. 大家都用什么工具管理mysql數(shù)據(jù)庫(kù)?8. python - 請(qǐng)問(wèn)這兩個(gè)地方是為什么呢?9. 請(qǐng)教一個(gè)mysql去重取最新記錄10. mysql的循環(huán)語(yǔ)句問(wèn)題
