過去1週間以内にトップ10のニュース記事を集めるためにSQLクエリをまとめようとしています。 同じニュース項目を見た重複IPアドレスをフィルタリングする必要もあります。テーブル内で上位10個の値が表示される
ユーザがページを入力するたびに、ユーザのブラウザクエリ文字列が取得されます。
は、ここでDBの設定の例です:
datetime | ipaddress | querystring
-----------------------------------------
9/12/2011 | 65.65.65.651 | newsid=3512
9/12/2011 | 65.65.65.658 | newsid=3512
10/12/2011 | 65.65.65.653 | newsid=3514
11/12/2011 | 65.65.65.656 | newsid=3515
11/12/2011 | 65.65.65.651 | newsid=3515
13/12/2011 | 65.65.65.651 | newsid=3516
14/12/2011 | 65.65.65.650 | newsid=3516
14/12/2011 | 65.65.65.650 | newsid=3516
私の失敗した:
SELECT DISTINCT TOP 10 ipaddress, querystring, Count(*) AS thecount
FROM [thedb].[dbo].[tblwebstats]
WHERE querystring LIKE '%newsid=%' AND datetime > (1 week ago)
GROUP BY querystring, ipaddress
ORDER BY Count(*) DESC
「私はあなたが言うときと仮定:)
現在、エラーが表示されていますか、必要な結果が得られませんか? – Chris
私が望んでいた結果が得られません - 私に正しいカウントを与えません(別個のipaddressを数えません) – Ben