이
또한 가정입니다 ....이 당신을 도울 것이라고 생각 시작일과 종료일 사이의 모든 일 가장 가능성이 예상되는없는 어떤 그러나 문제는 PL/당신은 테스트 할 수 있습니다 이러한 가정을 따라서 여기
#standardSQL
WITH days AS (
SELECT day
FROM UNNEST(GENERATE_DATE_ARRAY('2015-01-01', '2015-12-31')) AS day
),
stations AS (
SELECT DISTINCT start_station_name AS station
FROM `trips_table`
)
SELECT s.*
FROM (SELECT * FROM stations CROSS JOIN days) AS s
LEFT JOIN (SELECT * FROM `trips_table`,
UNNEST(GENERATE_DATE_ARRAY(start_date, end_date)) AS day) AS a
ON s.day = a.day AND s.station = a.start_station_name
WHERE a.day IS NULL
을 세부 사항이 누락되어 start_station_name 분야에서 역은 "전용"입니다 심플/더미 데이터
아래로 그것을 바깥
#standardSQL
WITH `trips_table` AS (
SELECT 1 AS trip_id, DATE '2015-01-01' AS start_date, DATE '2015-12-01' AS end_date, '111' AS start_station_name UNION ALL
SELECT 2, DATE '2015-12-10', DATE '2015-12-31', '111'
),
days AS (
SELECT day
FROM UNNEST(GENERATE_DATE_ARRAY('2015-01-01', '2015-12-31')) AS day
),
stations AS (
SELECT DISTINCT start_station_name AS station
FROM `trips_table`
)
SELECT s.*
FROM (SELECT * FROM stations CROSS JOIN days) AS s
LEFT JOIN (SELECT * FROM `trips_table`,
UNNEST(GENERATE_DATE_ARRAY(start_date, end_date)) AS day) AS a
ON s.day = a.day AND s.station = a.start_station_name
WHERE a.day IS NULL
ORDER BY station, day
출력이란 종료일 약
station day
111 2015-12-02
111 2015-12-03
111 2015-12-04
111 2015-12-05
111 2015-12-06
111 2015-12-07
111 2015-12-08
111 2015-12-09
아래와 같다? – Strawberry
왜 MySQL 태그입니까? – Strawberry
mysql 태그를 제거했습니다. 나는 google-bigquery에 그것을 써야한다. end_date는 start_date와 같은 방식으로 작동합니다. 따라서 둘 중 하나에 활동이 있으면 그 날에는 계산하지 않습니다. –