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