MS SQL に 2 つのテーブルがあります。
Category
- Id (int)
CategoryElement
- Id (int)
- CategoryId (int) //References Category.Id
- Time (datetime)
したがって、各カテゴリには 0 個以上のカテゴリ要素を含めることができます。CategoryElement の Time は、カテゴリ要素が作成された時刻を表します。
過去 7 日間に追加されたカテゴリ要素の数で降順でカテゴリを並べ替え、カテゴリ ID と追加された要素の数を表示する、次のクエリを作成する助けが必要です。
これまでのところ、「過去7日間に追加された」部分なしでクエリを書くことができました:
SELECT c.Id, e.ElemCount
FROM dbo.Categories AS c
INNER JOIN
(SELECT CategoryId, COUNT(1) AS ElemCount, MAX(Time) AS LatestElem
FROM dbo.CategoryElements
GROUP BY CategoryId) AS e
ON c.ID = e.CategoryId
ORDER BY e.LatestElem DESC