Как запрограммировать столбец дохода в SQL - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь создать запрос SQL, который в основном имитирует рисунок выше. У меня date и profit сделаны за месяц. Я должен отслеживать прибыль, используя столбец дохода, а затем находить прибыль, полученную между feb и mar.

Excel sample picture

Это мой код:

SELECT 
   pickup_datetime, 
   total_amount, 
   SUM(total_amount) OVER (order by pickup_datetime) AS Revenue 
FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018

Ответы [ 2 ]

2 голосов
/ 01 мая 2019

Гордон совершенно правильно, что вы хотите использовать накопительную сумму.Точно так же комментаторы выдвигали предложения относительно подзапросов, но им требуются предельные предложения.

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

SELECT
  pickup_datetime AS Date,
  total_amount,
  SUM(total_amount) OVER (ORDER BY pickup_datetime) AS Revenue
FROM (
  SELECT
    DATE(pickup_datetime) AS pickup_datetime,
    sum(total_amount) AS total_amount
  FROM
    `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018`
  GROUP BY 1)
ORDER BY 1

Никаких проблем во время выполнения здесь: Query complete (4.7 sec elapsed, 2.5 GB processed).

Дайте мне знать, если у вас есть какие-либо дополнительные вопросы.

0 голосов
/ 01 мая 2019

Кажется, вы хотите накопительную сумму.Предполагая, что у вас есть столбец с реальной датой:

select month, profit,
       sum(profit) over (order by month) as revenue
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...