Нахождение корреляции между данными на основе местоположения

0

Я пытаюсь найти корреляцию между некоторыми данными на основе местоположения в MySQL db, где мы храним информацию о клиентах и партнерах. Каждый клиент имеет поле для своих соответствующих geo_zip_code и geo_region а также каждый партнер. Когда клиент входит в нашу систему, они получают предложения от трех разных партнеров. Я хочу узнать, сможет ли клиент принять предложение, где партнер находится в том же geo_zip_code или geo_region основе поля geo_zip_code или geo_region таблицы с совпадениями между клиентом и одним из трех партнеров. Однако я не знаю, с чего начать, чтобы это сделать. Если возможно, как это сделать в MySQL? В противном случае, если вы не хотите полностью ответить, вы более чем можете направить меня в направлении, где я могу найти информацию о том, как это решить. Кроме того, если это возможно сделать в любом Tableau или Python, пожалуйста, дайте мне знать. Спасибо!

  • 0
    Нам нужно знать, хранятся ли предложения, принимаемые клиентами, и где в структуре базы данных будет существовать информация. В любом случае вам нужно будет найти способ сообщить о принятых предложениях как клиентам, так и партнерам, чтобы получить точные данные по этой проблеме.
  • 0
    Эдвард, существует таблица предложений и таблица соответствий, которую я забыл включить. Обе таблицы содержат идентификаторы клиента и партнера. Это означает, что таблицы с соответствиями должны быть теми, чтобы найти связь между клиентом и партнером.
Теги:
tableau

1 ответ

0
Лучший ответ

Это должно быть хорошей отправной точкой. Конечно, у меня нет имен ваших таблиц.

DECLARE @total_matches INT 
DECLARE @non_matches INT 
DECLARE @region_or_zip_matches INT 
-- this will return a count of all matches 
SELECT @total_matches = COUNT(m.'8')
FROM Matches as m 
-- this will return a count of matches where there is no zip/region match 
SELECT @non_matches = COUNT('8') 
FROM Matches  AS m 
INNER JOIN Clients AS c 
    ON c.client_id = m.client_id
INNER JOIN Partners AS p 
    ON p.partner_id = m.partner_id
WHERE 
AND c.geo_region IS NOT NULL --not null may be unnecessary based on column criteria. 
AND p.geo_region IS NOT NULL 
AND c.geo_zip_code IS NOT NULL 
AND p.geo_zip_code IS NOT NULL 
AND (c.geo_region != p.geo_region
AND c.geo_zip_code != p.geo_zip_code)

SET @region_or_zip_matches = @total_matches - @non_matches

SELECT (CAST(@region_or_zip_matches AS FLOAT) / CAST(@total_matches AS FLOAT) * 100;
  • 0
    Большое спасибо, Эдвард! Это было именно то, что я искал. Спасибо за комментарии, чтобы уточнить, а также.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню