私はproduct_idとentry_dateフィールドを持つ製品テーブルを持っています(これはvarcharで、phpのtime()関数によるタイムスタンプ値を持っています)。1週間にアップロードされた製品の数の結果を取得したい. 1 週間にアップロードされた製品の数の結果を取得できる SQL を教えてください。
user_id フィールドもあります。また、ユーザーごとに 1 週間にアップロードされた製品の数も必要です。
重複の可能性:過去 7 日間に追加された最も閲覧されたエントリを表示します
このようなことを試してください:
SELECT data-you-want-to-retrieve
FROM `Your-Table`
WHERE entry_date > (curdate() - 604800)
そのため、エントリの日付が 7 日前の日付よりも大きいことがわかります。
SELECT CONCAT(YEAR(entry_date), '_', WEEKOFYEAR(entry_date)) AS week, COUNT(*) Count, user_id
FROM `tbl_products`
GROUP BY week, product_id, user_id
1 週間あたりの製品アップロード数:
SELECT CONCAT(YEAR(entry_date), '_', WEEKOFYEAR(entry_date)) AS week,
COUNT(1) AS prodcnt
FROM products
GROUP BY week
特定のユーザーの 1 週間あたりの商品数:
SELECT CONCAT(YEAR(entry_date), '_', WEEKOFYEAR(entry_date)) AS week,
COUNT(1) AS prodcnt
FROM products
WHERE user_id = <userid here>
GROUP BY week
2012_48
のようなものでグループ化された結果が得られます48
。