Как достичь указанной ниже цели в приборной панели obiee

У меня есть таблица, как показано ниже:

id name role1 role2 role3
-------------------------
1  John   y    n      y
2  Pete   n    y      y
3  Den    n    y      y
4  Mat    y    n      n

После того как я отфильтровал таблицу с помощью role1='Y', я потерял Пита и Дена.

Как я могу использовать анализ для построения таблицы, как показано ниже:

       Count (Y)
Role1    3
Role2    2
Role3    3

Я пробовал все. Пожалуйста помоги

Спасибо


person haoyun    schedule 26.09.2013    source источник
comment
Вы используете базу данных Oracle? Я могу опубликовать ответ, используя пункт PIVOT на 11g.   -  person Victor HDC    schedule 27.09.2013


Ответы (1)


Если ваша база данных Oracle 11g или более поздней версии, вы можете использовать предложение unpivot

SELECT usr_role,
  COUNT(*) role_count
FROM
  (SELECT  * 
     FROM table_name 
     UNPIVOT (hasRole FOR usr_role IN (role1,role2,role3))
  WHERE hasRole = 'y'
  )
GROUP BY usr_role ;

Это возвращает:

USR_ROLE  ROLE_COUNT
ROLE3      3
ROLE1      2
ROLE2      2

Вы можете использовать этот запрос как непрозрачное представление в RPD.

person Victor HDC    schedule 27.09.2013