Эффективно найти отображение - PullRequest
0 голосов
/ 04 февраля 2011

Предположим, что у нас есть два набора данных A, B, которые имеют отношение m к n.

A = {k1, k2, k3 .... kn} B = {g1, g2, g3 .......... gn}

Все элементы воба набора буквенно-цифровые.Теперь кортежи по одному из набора A и набора B сохраняются в таблице T.

для ex: - (k1, g2) (k2, g4) (k1, g3) (k4, g2) ..... ... (kn, gm)

Задача состоит в том, чтобы выяснить, какие элементы 'm' в наборе A соответствуют наиболее эффективным 'n' элементам в наборе B.

Например, скажем, у нас есть следующие кортежи:

(k1, g1) (k1, g2) (k3, g1) (k3, g2) (k5, g1) (k5, g2)

нужное мне o / p (k1, k3, k5) -> (g1, g2).

Поскольку отображение m на n, простой выбор выиграл 'т работа.Пожалуйста, дайте мне знать, если вам нужны дальнейшие разъяснения

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

Помощь очень ценится.

Заранее спасибо ...

1 Ответ

0 голосов
/ 04 февраля 2011

Часто такие проблемы можно решить с помощью агрегата и предложения group by.

Например, если имя вашей таблицы T, тогда:

select T.item1, concat(T.item2, ", ") from T group by T.item1

Дает вам то, что item1 отображается на item 2. Затем снова переключаете item1 и item 2, чтобы найти, что item2 отображается на item1.

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