Хитрые проблемы SQL совокупный итог - PullRequest
0 голосов
/ 09 июля 2019

Я работаю над проблемами макета 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)
);

Вот мое частичное решение проблемы.Я не могу понять, как я могу написать запрос, чтобы преобразовать ДАТУ в недели и получить итоговую сумму?

(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'

Любые решения приветствуются.Я застрял, как сделать правильный подсчет и принять во внимание недели, кумулятивный итог по лондонскому делу.

PS Воспроизводимый пример можно найти здесь http://sqlfiddle.com/#!17/fcf7b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...