2011-08-07 10 views
0

私は人気のMysqlの行

ID、PAGE_ID、DATE

ページがロードされるたびに、DATEを持っている、[以下のページテーブルから] PAGE_IDがにロードされています上記の表

私は人気度でページを計算してソートしようとしています。ページテーブルが含まれています

ID [PAGE_ID]、DESCRIPTION、DATE

私はどこから始めれば見当がつかない。

答えて

2
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 

最も人気の少なくとも1つに、あなたにロードされたページのリストを提供します。

+0

'count()'で注文することはできません。代わりに、最初の行に列名をエイリアスし、でエイリアスを使用してください。 PDO開始日入力の場合は+1です。 – Arjan

+0

はい、少なくともpostgreSQLとoracleでは可能です。 MySQLでうまく動作しないと私は驚いています。 –

+0

あなたは正しいです、それは動作します、私は混乱したと思います。 – Arjan

1
select 
id_page, 
count(*) as popularity 
from table 
where date >= curdate() - interval 7 day 
group by id_page 
order by popularity desc 
+0

ニック、これはtable1をソートしますが、table2 [ページテーブル]はソートしないようです。 – DaedBaet

+0

申し訳ありませんが、私はあなたの質問に誤解していました。次に、JB Nizetが示唆しているようにjoinを使用する必要があります:) –

関連する問題