Как лучше всего узнать в импале, если таблица a является подмножеством таблицы b? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть две внешние таблицы на основе паркета в Impala, хотелось бы знать, является ли одна подмножеством другой, как лучше всего это получить?

Две таблицы имеют одинаковую схему с дюжиной или даже сотнями полей

Спасибо.

1 Ответ

0 голосов
/ 15 ноября 2018

Если в одной из таблиц нет дубликатов, то A будет подмножеством B, если счет от:

select count(*)
from B;

соответствует количеству от:

select count(*)
from ((select * from a) union
      (select * from b)
     ) ab;

То есть добавление строк с A к B и удаление дубликатов больше не добавляет строк.

Это не строгое отношение подмножества, потому что "A" может быть эквивалентно "B". Для строгих отношений подмножества добавьте условие:

select count(*)
from A

строго меньше, чем число B.

Это предполагает, что типы и столбцы в A и B совместимы - разумное предположение, если вы спрашиваете о том, является ли одно подмножеством другого.

...