#mysql #powerbi #dax
Вопрос:
Я загрузил базу данных MySQL в PowerBI; вот как выглядит модель данных:
Я хотел бы воспроизвести этот запрос MySQL с помощью DAX:
SELECT
concat(substring(ano, 1, 3), 0) AS decada,
nombre_pais,
nombre_ciudad,
count(nombre_ciudad) AS numero
FROM
paises
NATURAL JOIN ciudades
NATURAL JOIN autores
NATURAL JOIN publican
NATURAL JOIN discos
NATURAL JOIN canciones
NATURAL JOIN listas_spotify
GROUP BY
decada,
nombre_ciudad
Он вычисляет, сколько раз каждый город (из таблицы ciudades
) появляется в базе данных в зависимости от количества песен (из таблицы canciones
) по группам (из таблицы autores
), расположенным в этом городе, по десятилетиям (из таблицы listas_spotify
, которая включает параметр даты).
Заказывая numero
, я получаю такой столик:
decada, nombre_pais, nombre_ciudad, numero
1980, Inglaterra, Londres, 23
1990, Inglaterra, Londres, 15
1980, Inglaterra, Mánchester, 11
2000, EEUU, Austin, 11
2000, EEUU, Nueva York, 10
1980, EEUU, Boston, 9
1980, EEUU, Nueva York, 8
1990, Inglaterra, Mánchester, 7
1990, Inglaterra, Oxford, 7
...
Если я напрямую загружу эту таблицу в PowerBI, легко создать такой график (отфильтрованный только для пяти крупных городов).:
Но я понятия не имею, как получить его из модели данных PowerBI с помощью DAX. Я не ожидаю полного решения своей проблемы, просто чтобы узнать, как связать таблицы, чтобы подсчитать количество элементов из одной в зависимости от параметров из другой, чтобы я мог воссоздать свой SQL-запрос с синтаксисом DAX.
Ответ №1:
Я бы создал таблицу слияния с помощью PowerQuery со всеми необходимыми полями, а затем сгруппировал по
Комментарии:
1. Я достиг этой окончательной таблицы, используя
NATURALINNERJOIN()
-так что теперь у меня есть много бессмысленных промежуточных таблиц в моей модели -, а затем СУММИРУЙТЕ() ее. Я проведу небольшое исследование по поводу слияния. Спасибо!2. Сделайте все это в PowerQuery и проверьте сворачивание запросов docs.microsoft.com/en-us/power-query/power-query-folding Это позволит ему передать SQL обратно в БД, если вы хотите