Диаграмма вершины оракула - линейный график sql?

select count(case when extract(month from C_DATE) = 1 then 1 end) as Jan,
   count(case when extract(month from C_DATE) = 2 then 1 end) as feb,
   count(case when extract(month from C_DATE) = 3 then 1 end) as mar,
   count(case when extract(month from C_DATE) = 4 then 1 end) as april,
   count(case when extract(month from C_DATE) = 5 then 1 end) as may,
   count(case when extract(month from C_DATE) = 6 then 1 end) as jun,
   count(case when extract(month from C_DATE) = 7 then 1 end) as jul,
   count(case when extract(month from C_DATE) = 8 then 1 end) as aug,
   count(case when extract(month from C_DATE) = 9 then 1 end) as sep,
   count(case when extract(month from C_DATE) = 10 then 1 end) as oct,
   count(case when extract(month from C_DATE) = 11 then 1 end) as nov,
   count(case when extract(month from C_DATE) = 12 then 1 end) as december
from Table1

В настоящее время у меня есть запрос, который дает результат

Jan Feb Mar Apr .....
1   3    1   2

Теперь я хочу отобразить эту информацию в виде графика, чтобы он выглядел так, как будто

3       x
2
1  x           x
  jan   feb   mar 

Будучи abit из noob с диаграммами, я не могу заставить его работать, когда я пытаюсь использовать свой текущий запрос. любая помощь высоко ценится

1 ответ

Если вы действительно хотите использовать ASCII-графику и вместо чего-то более сложного, вы можете использовать

WITH
Line AS (
  SELECT
    ' ' || Jan || '  ' || Feb || '  ' || Mar || '  ' || Apr || '  ' || May || '  ' || Jun || '  ' || Jul || '  ' || Aug || '  ' || Sep || '  ' || Oct || '  ' || Nov || '  ' || Dec || ' ' l
  FROM Result
),
Graph (cnt, g)AS (
  SELECT 5, '#' || REGEXP_REPLACE(REGEXP_REPLACE(l, ' 5 ', '  x  '), '\d+', '   ') || '#' FROM Line UNION ALL
  SELECT 4, '#' || REGEXP_REPLACE(REGEXP_REPLACE(l, ' 4 ', '  x  '), '\d+', '   ') || '#' FROM Line UNION ALL
  SELECT 3, '#' || REGEXP_REPLACE(REGEXP_REPLACE(l, ' 3 ', '  x  '), '\d+', '   ') || '#' FROM Line UNION ALL
  SELECT 2, '#' || REGEXP_REPLACE(REGEXP_REPLACE(l, ' 2 ', '  x  '), '\d+', '   ') || '#' FROM Line UNION ALL
  SELECT 1, '#' || REGEXP_REPLACE(REGEXP_REPLACE(l, ' 1 ', '  x  '), '\d+', '   ') || '#' FROM Line UNION ALL
  SELECT 0, '#' || REGEXP_REPLACE(REGEXP_REPLACE(l, ' 0 ', '  x  '), '\d+', '   ') || '#' FROM Line UNION ALL
  SELECT -1, '# Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec #' FROM DUAL
)
SELECT
  *
FROM Graph
ORDER BY cnt DESC
;

с "Результатом", являющимся вашим запросом к Таблице1.

См. SQL Fiddle (переключитесь на вывод простого текста, чтобы увидеть правильное выравнивание столбцов.)
Пробовали ли вы строить диаграммы, Гантс и карты с помощью Oracle Application Express 4.0? Пожалуйста, прокомментируйте, если и как требуется корректировка / дальнейшие детали.

Другие вопросы по тегам