[英]Sorting columns with pivot table in MySQL
I would like to sort my columns in pivot table. 我想对数据透视表中的列进行排序。 Here is a link to my example table and query what i have now. 这是指向我的示例表并查询我现在拥有的链接 。 As you can see in result the name of the columns are unsorted. 如您所见,结果列的名称未排序。
I'm basically doing this: 我基本上是这样做的:
SELECT GROUP_CONCAT(DISTINCT
CONCAT('MAX(CASE WHEN DATE(date) = ''', date,
''' THEN score END) `', DATE_FORMAT(date,'%d.%m.%Y'), '`'))
INTO @sql
FROM tabletest
ORDER BY date;
SET @sql = CONCAT('SELECT name,', @sql, '
FROM tabletest
GROUP BY name');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
My column output is like this: 我的列输出是这样的:
| NAME | 30.11.2013 | 28.11.2013 | 27.11.2013 | 29.11.2013 |
|---------|------------|------------|------------|------------|
| Adele | 234 | 552 | (null) | (null) |
And I would like to have the columns sorted. 我想对列进行排序。
Thanks in advance. 提前致谢。
Just add an ORDER BY date
inside the GROUP_CONCAT
: 只需在GROUP_CONCAT
内添加一个ORDER BY date
:
SELECT GROUP_CONCAT(DISTINCT
CONCAT('MAX(CASE WHEN DATE(date) = ''', date,
''' THEN score END) `', DATE_FORMAT(date,'%d.%m.%Y'), '`')
ORDER BY date)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.