2016-10-20 2 views
0

Каждый месяц я собираю данные в таблице wp_reports. Например, я собираю социальные медиа статистику, что дает таблицу как:Mysql: return row as columns

------------------------------------------ 
month | facebook | twitter | linkedin || <-column names 
------------------------------------------ 
Jan 16 | 100 | 200 | 300    || <- row values 
Feb 16 | 102 | 202 | 302 

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

Однако теперь я мог бы отображать данные, относящиеся к последнему месяцу. У меня есть библиотека, которая генерирует круговую диаграмму из запроса SQL.

Я хотел бы результат моего запроса как:

----------- 
label | value 
------------- 
Facebook | 102 
Twitter | 202 
LinkedIN | 302 

Это сделало бы всю мою страницу работы.

Проблема в том, что я не могу найти правильный запрос.

У меня есть следующий один, который retrives имен столбцов в качестве меток:

SELECT 
     CASE 
     WHEN column_name = 'twitter' THEN 'Twitter' 
     WHEN column_name = 'linkedin' THEN 'LinkedIn' 
     ELSE 'Facebook' 
     END 
     as label 
    FROM information_schema.columns 
    WHERE table_name='wp_report' AND column_name IN ('facebook', 'twitter', 'linkedin') 

Теперь я хотел бы знать, как объединить его с колонкой под названием «значение», который будет содержать номер соответствия.

Если бы я мог закрутить результат следующего запроса в столбце под названием «Значение», что было бы здорово:

'SELECT newsletter, facebook, twitter, gplus, linkedin FROM wp_report ORDER BY date DESC LIMIT 1' 

Спасибо за вашу помощь.

+0

См нормализации. Таблица базы данных НЕ является таблицей. – Strawberry

+0

Приветствия! Я тоже использовал это: http://stackoverflow.com/questions/16359345/transposing-dynamic-columns-to-rows –

ответ

0

Вы можете использовать следующий запрос: -

select 'Facebook' label,facebook value from wp_reports where month='JAN' 
UNION ALL 
select 'Twitter' label,Twitter value from wp_reports where month='JAN' 
UNION ALL 
select 'LinkedIn' label,LinkedIn value from wp_reports where month='JAN'; 
+0

Спасибо, это сработало! –