我正在研究SQL模型问题,以加深我的知识。我有一些玩具示例,我正在尝试解决偶然发现的每个问题。
这是数据库的架构。
users (
user_id INT PRIMARY KEY
, first_name VARCHAR(255)
, last_name VARCHAR(255)
, date_created DATE
, email VARCHAR(255)
)
orders (
order_id INT PRIMARY KEY
, user_id INT
, date_created DATE
, order_value FLOAT
, city_id INT
);
city (
city_id INT PRIMARY KEY
, city_name VARCHAR(255)
, country_id INT
);
country (
country_id INT PRIMARY KEY
, country_name VARCHAR(255)
, currency_code VARCHAR(255)
);
这是我对问题的部分解决方案。我不明白如何编写查询才能将DATE转换为周并累积总数?
(3)查找过去8周伦敦市的每周订购计数以及累计总数。
所需的输出:[week_start,order_count,cuml_order_count]
代码:
SELECT
COUNT(order_id),
SUM(order_id) OVER(ORDER BY user_id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Summand,
city_name
FROM
orders
WHERE
date_created >= DATEADD(day, -56, GETDATE())
AND city_name = 'London'
欢迎使用各种解决方案。 我被困在如何做正确的计数,并考虑到伦敦案件的周总数。
P.S。您可以在http://sqlfiddle.com/#!17/fcf7b
中找到可复制的示例