【问题标题】:Mariadb move dynamic data from rows to columns with True / FalseMariadb 使用 True / False 将动态数据从行移动到列
【发布时间】:2018-01-09 08:03:16
【问题描述】:

我正在使用 MariaDB 10.2。

客户标签表如下所示

我想创建一个视图/查询,它提供如下输出

我在 Excel 中很容易做到这一点,但事实证明 SQL 查询非常困难和错误。

我试过 SQL

SELECT
  GROUP_CONCAT( t.tagname ) INTO @PivotQuery
FROM
  (SELECT
     clienttag.customer, tagname
   FROM
     clienttag
   GROUP BY
     clienttag.customer, clienttag.office) t;

SET @PivotQuery = CONCAT('SELECT @PivotQuery' FROM clienttag GROUP BY customer');

【问题讨论】:

    标签: mysql sql pivot mariadb pivot-table


    【解决方案1】:

    使用条件聚合

    SELECT customer, tagname,
          MAX(CASE WHEN tagName = 'A' THEN 1 END) as A,
          MAX(CASE WHEN tagName = 'B' THEN 1 END) as B,
          MAX(CASE WHEN tagName = 'C' THEN 1 END) as C,
          MAX(CASE WHEN tagName = 'D' THEN 1 END) as D,
          MAX(CASE WHEN tagName = 'E' THEN 1 END) as E
    FROM clienttag
    GROUP BY customer, tagname
    

    【讨论】:

    • A、B、C 这些是动态字段。实际上,这些值是这样的 - green, blue, white, car, jeep, birthday
    • @AdarshMadrecha 好的,我明白了。您可以使用动态 SQL 编译查询:stackoverflow.com/questions/12004603/…
    猜你喜欢
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多