棘手的SQL问题累计总数

时间:2019-07-09 07:17:37

标签: sql join select

我正在研究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

中找到可复制的示例

0 个答案:

没有答案