Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL Row to Column

Tags:

mysql

row

can any one help me on how can I create a query output using the row data on the source table as a header on my output. Please see below for illustration.

E.G.

Row Data:

+-----------+----------+
| colHeader | value    |
+-----------+----------+
| Header1   | value 1  |
+-----------+----------+
| Header2   | value 2  |
+-----------+----------+
| Header3   | value 3  |
+-----------+----------+

Output:

+-----------+-----------+-----------+
| Header1   | header2   | Header3   |
+-----------+-----------+-----------+
| Value 1   | value 2   | Value 3   |
+-----------+-----------+-----------+

Is it possible??

Here is my MySQL script. I don't think if is it the right way. Is there any idea on how could i arrive on the above output?

SELECT t1.value AS `Header1`,
       t2.value AS `Header2`,
       t3.value AS `Header3`
  FROM (SELECT * FROM table1 WHERE colHeader='Header1') t1
  JOIN (SELECT * FROM table1 WHERE colHeader='Header2'3) t2
  JOIN (SELECT * FROM table1 WHERE colHeader='Header3') t3;
like image 429
Bryan Avatar asked Jun 28 '12 09:06

Bryan


People also ask

How do I PIVOT rows into columns in MySQL?

Unfortunately, MySQL does not have PIVOT function, so in order to rotate data from rows into columns you will have to use a CASE expression along with an aggregate function.

How do I transpose rows to columns dynamically in MySQL?

SET @sql = CONCAT('SELECT Meeting_id, ', @sql, ' FROM Meeting WHERE <condition> GROUP BY Meeting_id'); Similarly, you can also apply JOINS in your SQL query while you transpose rows to columns dynamically in MySQL. Here's an example of pivot table created using Ubiq.


1 Answers

How about this??

SELECT  
  GROUP_CONCAT(if(colHeader = 'Header 1', value, NULL)) AS 'Header 1', 
  GROUP_CONCAT(if(colHeader = 'Header 2', value, NULL)) AS 'Header 2', 
  GROUP_CONCAT(if(colHeader = 'Header 3', value, NULL)) AS 'Header 3' 
FROM myTable; 

Demo

Note, you will need GROUP BY statement when there are more data of ids as shown below in Demo 2.

Demo 2

like image 51
Fahim Parkar Avatar answered Sep 24 '22 01:09

Fahim Parkar