mysql - MySQL 中的行到列转换

标签 mysql pivot-table

我在 MySQL 中有这个结果集:

ID          Type Email          Degignation  
1000000000  202 brijesh@abc.com Entrepreneur
1000000000  234 brijesh@abc.com Engineering,Development
1000000000  239 brijesh@abc.com CTO

我有很多这样的元组,而不仅仅是三个。 我希望类型成为列,最后一列成为它们的行值。就像下面这样

ID                202         234                     239        Email 
1000000000   Entrepreneur  Engineering,Development    CTO       brijesh@abc.com

最佳答案

这称为数据透视表。制作起来有点尴尬:

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

请注意,在编写查询之前,您必须知道所有不同的 Type 值。 SQL 不允许结果集在发现表中的数据值时动态添加更多列。列必须在查询准备时固定。

关于mysql - MySQL 中的行到列转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47015692/

相关文章:

mysql - 处理 Sphinx 结果中的星号

c# - MySQL 在字符串前面添加空格

pandas - 如何使用 pandas.Grouper 对整数进行区间分组?

python - Pandas 数据框的简单数据透视表

多个表中分配的 ID 出现的 mysql 计数

MySQL If 条件在 where 子句查询中

mysql - 有没有一种简单的方法可以在数据库列中定义一个已定义的项目列表

python - Pandas 数据帧 : convert columns into rows of a single column

excel - 使用计算字段正确显示数据透视表中的总计

Excel 从 OLAP 筛选器中获取检查值