Рассчитать медиану и среднее значение в разделе в Tableau, используя расчет таблицы

У меня есть подробная таблица постов и тем, выкопанная на форуме. Строка — это отдельная тема (т. е. postID и subjectIS — это первичный ключ для таблицы), затем у меня есть некоторые меры на уровне темы, а некоторые — на уровне публикации. Например:

    +---------+-------------+--------------+------------+--------------+--------+
    | post.ID | post.Author | post.Replies | subject.ID | subject.Rank | year   |
    +---------+-------------+--------------+------------+--------------+--------+
    |   1     |   mike      |     10       |    movie   |     4        |  1990  |
    |   1     |   mike      |     10       |    comics  |     6        |  1990  |
    |   2     |   sarah     |      0       |    tv      |    10        |  2001  |
    |   3     |   tom       |      4       |    tv      |    10        |  2003  |
    |   3     |   tom       |      4       |    comics  |     6        |  2003  |
    |   4     |   mike      |      1       |    movie   |     4        |  2008  |
    +---------+-------------+--------------+------------+--------------+--------+

Я хочу изучить тренд постов и тем по годам и раскрасить его по subject.Rank.

Первые легко измерить, поместив COUNTD (post.ID) и COUNTD (subject.ID) в строки и «год» в столбец. Но если я перетащу MEDIAN(subject.Rank) в Color, я получу неправильный результат: он вычисляется не на уровне отдельного subject.ID, а на уровне строки.

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


person Gabriele B    schedule 02.10.2014    source источник
comment
Проблема в том, что у вас может быть много дубликатов одного и того же предмета, и вы хотите рассмотреть каждый только один раз. Возможно, есть способ вычислить это непосредственно из этого источника данных, но я не могу придумать его прямо сейчас. Что бы я сделал, так это создал новую таблицу, очень простую, с subject.ID и subject.Rank, без дубликатов. Затем подключитесь к этой таблице (и присоединитесь или используйте смешивание данных) и используйте ее для вычисления медианы.   -  person Inox    schedule 02.10.2014
comment
Tnx @Inox за ваш комментарий; Я знаю, что могу справиться с этим со стороны Back-End, есть много разных способов сделать это с помощью простого ETL (например, с использованием окна PL/SQL) или даже более простого файла Excel. Но на этот раз меня интересовало чистое решение Tableau.   -  person Gabriele B    schedule 03.10.2014
comment
Ну, вы можете делать все, что я сказал на Tableau = D. Просто создайте представление с subject.ID и subject.Rank, экспортируйте его в Excel, mdb или csv, подключитесь к нему, а затем смешайте с subject.ID. Не оптимально, не умно, но выполнимо. Проблема в том, что у вас есть повторяющиеся значения, а агрегирование, которое вы хотите использовать, — МЕДИАНА. Если бы это была СУММА или СРЕДНЕЕ, я мог бы придумать какой-нибудь способ взвешивания значений, чтобы получить правильный вклад, но медиана работает по-другому.   -  person Inox    schedule 03.10.2014
comment
Кстати, медиана ранга — довольно странное понятие. Но если это работает для вас   -  person Inox    schedule 03.10.2014


Ответы (2)


Похоже, вы пытаетесь рассматривать Subject.Rank как измерение, а не как меру. Если это так, просто преобразуйте его в измерение на соответствующем листе, щелкнув правой кнопкой мыши поле и выбрав измерение. Вы также можете преобразовать его в измерение на панели данных, перетащив поле из раздела показателей в раздел измерений. Это скажет Tableau рассматривать это поле как измерение по умолчанию в будущем.

В одних случаях поле можно рассматривать как измерение, а в других — как меру. Зависит от того, чего вы пытаетесь достичь. Если вы знакомы с SQL, измерения используются для разделения строк данных для агрегирования с помощью предложения GROUP BY.

Наконец, подсчет различных (COUNTD) может быть дорогостоящим для больших наборов данных. Часто тот же результат можно получить другим способом. Так что попробуйте подумать о других подходах и сохраните COUNTD до тех пор, пока он вам действительно не понадобится.

person Alex Blakemore    schedule 05.10.2014
comment
Я не верю, что это поможет ОП с проблемой дублирующихся значений. - person Inox; 06.10.2014
comment
Обработка subject.rank как измерения разделит данные по темам и позволит ему разделить любые меры, которые он запрашивает, на разные блоки в соответствии с их subject.rank. Это позволит ему раскрасить каждый предмет. Ранг в соответствии с запросом. Независимо от того, является ли count отличным необходимым или имеет смысл для его мер, это другой вопрос, и его трудно сказать по тексту вопроса. - person Alex Blakemore; 06.10.2014

Попробуйте использовать {фиксированный [1-й УРОВЕНЬ], [2-й уровень]: медиана ()} или подход к расчету таблицы, когда вы вводите медиану, есть расчет таблицы редактирования при предварительном вычислении с использованием ваших полей (убедитесь, что он упорядочен так, как вы хотите, чтобы он вычислял, когда вы их выбираете), затем нажмите OK, выберите уровень и перезапустите каждый

person Ryan Gomes    schedule 30.08.2016