0
도움을 주셔서 감사합니다. 각 게시물마다 행이있는 게시물이라는 테이블이 있습니다. 포스트는 post_date (유닉스 타임 스탬프 형식)와 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 행)를 찾는 방법입니다.) 한 달에. 나는 그것을 어떻게하는지 모른다. 그래서 나는 이것이 어떻게 풀어 지는지 보는 것에 흥미가있을 것이다. –