Таблица результатов хранилища SQL с названием месяца - PullRequest
0 голосов
/ 09 марта 2019

У меня есть несколько CSV для хранения запросов. Каждый CSV представляет месяц данных. Я хотел бы подсчитать все записи в каждом CSV и сохранить эти данные в таблицу в виде строки в таблице. Например, таблица, которая представляет май, должна возвращать что-то, похожее на это с июньским следующим Данные начинаются в феврале 2018 года и продолжаются до февраля 2019 года, поэтому также понадобится значение года.

Month    Results
----------------
May 18     1170
June 18    1167

Я хочу выполнить один и тот же запрос ко всем таблицам в целях эффективности. Я также хочу, чтобы запрос работал со всеми будущими обновлениями, например. добавляется таблица 19 марта, и запрос все равно будет работать.

Пока у меня есть этот запрос.

SELECT COUNT(*)
FROM `months_data.*`

Я запрашиваю в Google Big Query с использованием стандартного SQL.

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Звучит так, как будто вы просто хотите объединить, которое подсчитывает строки для каждого месяца:

SELECT
  DATE_TRUNC(DATE(timestamp), MONTH) AS Month,
  COUNT(*) AS Results
FROM `dataset.*`
GROUP BY month
ORDER BY month

Вы можете использовать функцию DATE_FORMAT , если хотите контролировать форматирование.

0 голосов
/ 09 марта 2019

Вам, кажется, нужно union all:

select 2018 as yyyy, 2 as mm, count(*) as num
from feb2018
union all
select 2018 as yyyy, 3 as mm, count(*)
from mar2018
union all
. . .

Обратите внимание, что у вас плохая модель данных. Вы должны хранить все данные в одной таблице со столбцом даты.

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