0
感謝您試圖提供幫助。我有一個表格,稱爲帖子,每個帖子都有一行。一個帖子有一個post_date(以unix時間戳格式)和一個author_id。優化具有複雜謂詞的MySQL查詢
我想獲得按月份和年份分組的一個月內發佈5次或更多次的獨特作者的數量。
查詢我現在有一個獨特的作家通過月份和年份(沒有過濾器在該月內的5支或更多個)是:
select
month(from_unixtime(p.post_date)) as month,
year(from_unixtime(p.post_date)) as year,
count(distinct p.author_id)
from posts p
group by month,year
order by year desc,month desc
能否請你幫我補充一個過濾器,只算在那個月有5個或更多帖子的作者?
UPDATE
下面的查詢工作,但極其緩慢,增加了對眼前這個月和今年謂詞時也是如此。有人可以想出更好的方法來做到這一點嗎?
select
month(from_unixtime(p.post_date)) as month,
year(from_unixtime(p.post_date)) as year,
count(distinct p.author_id)
from posts p
where (
select count(*) from posts p2 where p2.author_id=p.author_id
and month(from_unixtime(p.post_date))=month(from_unixtime(p2.post_date))
and year(from_unixtime(p.post_date))=year(from_unixtime(p2.post_date))
)>=5
group by month,year order by year desc,month desc
也許我只是雷丁是錯的,但將不計算返回唯一作者的數量? –
@KyleG。現在它是正確的。請檢查一次 – PSR
這更有意義,很高興我沒有失去主意:)但是,現在的問題是如何找到已發佈5次的作者(IOW,具有相同作者的5行)在一個月內。我不知道該怎麼做,所以我會很感興趣,看看如何解決這個問題。 –