我有一个这样的数据库(标准化,简化以描述问题):
BOOKS:
ID (PK) | TITLE | AUTHOR | ...
--------|-------|--------|-----
0 | Title_1 | Author_1
1 | Title_2 | Author_1
2 | Title_3 | Author_2
3 | Title_3 | Author_3
ORDERs:
ID | BOOK_ID | USER_ID | ORDER_DATE | ...
---|---------|---------|------------|----
0 | 1 | 1 | 2020-04-10 |
1 | 2 | 2 | 2020-04-15 |
2 | 2 | 1 | 2020-04-26 |
3 | 2 | 1 | 2020-05-02 |
我想要实现的是这样的
RESULT:
BOOK | Num_All_Time_Orders | Num_Orders_April | Num_Orders_May
根据要求:https ://www.db-fiddle.com/f/e1gW7aVEh3Gh547nZHvaDA/0
基本上计算每本书的所有订单。All Time 部分非常简单,但我正在尝试获取“所有”时间跨度的视图。
这可能(以简单的方式)还是我应该使用不同的参数进行后续查询?
NumAllTime 的当前查询如下所示:
SELECT BOOK.ID , COUNT(ORDERS.BOOK_ID)
FROM BOOKS AS BOOK
LEFT JOIN ORDERS ON BOOK.ID = ORDERS.BOOK_ID
GROUP BY BOOK.ID
编辑:感谢您的即时评论。编辑了一些东西。