在一个表我已经最流行的MySQL行过去7天
ID,PAGE_ID,DATE
每个页面加载时间,日期,PAGE_ID [从下面的页表]被加载到上面的表格。
我想按热门程度来计算和排序页面。页表包含:
ID [PAGE_ID],描述,日期
我不知道从哪里开始。
在一个表我已经最流行的MySQL行过去7天
ID,PAGE_ID,DATE
每个页面加载时间,日期,PAGE_ID [从下面的页表]被加载到上面的表格。
我想按热门程度来计算和排序页面。页表包含:
ID [PAGE_ID],描述,日期
我不知道从哪里开始。
select L.PAGE_ID, P.DESCRIPTION, count(L.ID) from LOADED_PAGE L
inner join PAGE P on P.ID = L.PAGE_ID
where L.DATE > :sevenDaysAgo
group by L.PAGE_ID, P.DESCRIPTION
order by count(L.ID) desc
会给你加载页面的列表,从最流行的至少一个。
select
id_page,
count(*) as popularity
from table
where date >= curdate() - interval 7 day
group by id_page
order by popularity desc
尼克,它看起来像这样会排序table1但不是table2 [page table]。 – DaedBaet
对不起,我误解了你的问题。那么你必须使用连接,因为JB Nizet建议:) –
你不能用'count()'命令,而应该在第一行中使用别名,并按照顺序使用别名。仍然为PDO开始日期输入+1。 – Arjan
是的,你可以,至少在postgreSQL和oracle。如果它在MySQL中不起作用,我会感到惊讶。 –
你是对的,它确实有效,猜测我很困惑。 – Arjan