2013-09-26 3 views
1

У меня есть таблица, как показано ниже:Как достичь цели ниже в 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 

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

Благодарности

+0

Вы используете g база данных Oracle? Я могу опубликовать ответ, используя предложение PIVOT на 11g –

ответ

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

+0

Большое спасибо! – haoyun

 Смежные вопросы

  • Нет связанных вопросов^_^