さまざまな種類のウィジェットを備えたWebサイトがあるとします。これらのウィジェットは、ユーザーによって「いいね」される可能性があります。さて、測定値として「いいね」を使用して、特定の期間における特定のウィジェットの人気をどのように測定できますか?今日、または今週、月(など)のホットウィジェットを識別できるスクリプトを組み立てることができます。
以前はいいねの合計を集計することを考えていましたが、人気があるのか見ないのかは時間に関係がないのかわかりません。
さまざまな種類のウィジェットを備えたWebサイトがあるとします。これらのウィジェットは、ユーザーによって「いいね」される可能性があります。さて、測定値として「いいね」を使用して、特定の期間における特定のウィジェットの人気をどのように測定できますか?今日、または今週、月(など)のホットウィジェットを識別できるスクリプトを組み立てることができます。
以前はいいねの合計を集計することを考えていましたが、人気があるのか見ないのかは時間に関係がないのかわかりません。
CREATE TABLE WidgetLikes (
WidgetID INTEGER NOT NULL REFERENCES Widgets(WidgetID),
UserID VARCHAR(20) NOT NULL REFERENCES Users(UserID),
LikedAt DATETIME NOT NULL,
PRIMARY KEY (WidgetID, UserID)
);
これは次のことを前提としています。
このテーブルを使用するには、ユーザーがウィジェットを気に入ったときにレコードを挿入します。
結果を取得するには、次のようなコマンドを発行します。
SELECT WidgetID, COUNT(UserID) FROM WidgetLikes
WHERE LikedAt BETWEEN `2012-09-01 00:00:00` AND `2012-09-03 11:59:59';