Не существует пункт -Query - PullRequest
1 голос
/ 02 мая 2019

Я использую предложение NOT EXSITS в своем запросе и хотел убедиться, что он работает правильно, так как я получаю меньше строк, чем ожидалось.

SELECT DISTINCT offer.courier_uuid,
                offer.region_uuid,
                offer.offer_time_local,
                Cast(scores.acceptance_rate AS DECIMAL(5, 3)) AS acceptance_rate
FROM integrated_delivery.trip_offer_fact offer
JOIN integrated_product.driver_score_v2 scores ON offer.courier_uuid = scores.courier_id
AND offer.region_uuid = scores.region_id
AND offer.business_day BETWEEN date '2019-04-04' AND date '2019-04-07'
AND scores.extract_dt = 20190331
AND NOT EXISTS
  (SELECT NULL
   FROM source_cassandra_courier_scheduling.assigned_block_by_id_v2 sched
   JOIN source_cassandra_delivery.region r ON sched.region_id = r.id
   WHERE offer.courier_uuid = sched.courier_id
     AND offer.offer_time_local >= date_parse(date_format(AT_TIMEZONE("start",r.time_zone),'%Y-%m-%d %H:%i:%s'),'%Y-%m-%d %H:%i:%s')
     AND offer.offer_time_local <= date_parse(date_format(AT_TIMEZONE("end",r.time_zone),'%Y-%m-%d %H:%i:%s'),'%Y-%m-%d %H:%i:%s')
     AND element_at(sched.state,-1) = 'ASSIGNED')
ORDER BY 3

Что-то не так с моим предложением несуществования?Я только спрашиваю, так как я получаю меньше строк, чем ожидалось.Каллус «Не существует» содержит преобразование времени, но я не думаю, что это повлияет на что-либо.

Я пытаюсь получить все возможные идентификаторы и время их предложения, которые НЕ СУЩЕСТВУЮТ в таблице запланированных смен.Я хотел подтвердить, верно ли то, что у меня есть предложение NOT EXISTS, или если мне нужно что-то еще, чтобы правильно извлекать все записи, которые существуют или не существуют в этой таблице сараев?

...