考虑一个SQL Server 2012表,它基本上记录了谁(成员)借用了哪个图书馆的哪一本书。这个例子是扭曲的。
是否有可能编写一个SQL查询,该查询将返回给定书籍借阅最多的时间段,比如说三个月?
我的努力开始于group by
book_id
开始并结束,只是无法绕过它。
答案 0 :(得分:0)
这是一个查询,它将为您提供借书最多次数的季度。内部查询返回一个临时表,该表由每个季度组成,其中借用了给定的书(例如book_id=5
)。然后我SELECT
单个记录,其中借书的次数最多。
SELECT t.theDate, t.theCount
FROM
(
SELECT CONCAT(YEAR(borrowed_date), '-', QUARTER(borrowed_date)) AS theDate,
COUNT(*) AS theCount
FROM table
WHERE book_id = 5
GROUP BY CONCAT(YEAR(borrowed_date), '-', QUARTER(borrowed_date))
) t
ORDER BY t.theCount DESC
LIMIT 1