首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Oracle pivot函数查询转换为MySQL查询

问如何将Oracle pivot函数查询转换为MySQL查询
EN

Stack Overflow用户
提问于 2019-12-11 18:08:21
回答 1查看 82关注 0票数 1

请查找以下查询,因为MySQL中没有要使用的透视函数。请提供相同的MySQL查询。请在下面的表格图片和预期数据查询后找到链接。

代码语言:javascript
复制
SELECT
   *
FROM
   (
       SELECT
           *
       FROM
           (
               SELECT
                   X.*,
                   Y.status,
                   Y.create_date,
                   Z.x_some_id
               FROM
                   X csv
                   LEFT JOIN Y lsh ON X.id = Y.x_id
                                                          AND Y.type = 'STATUS'
                   LEFT JOIN Z vi ON X.some_id = Z.x_some_id
               WHERE
                   X.some_col = 'abc'
           ) PIVOT (
               MAX ( create_date )
               FOR status
               IN ( 'CONFIRMED',
               'UNCONFIRMED' )
           )
   )
ORDER BY
   date ASC```

 [1]: https://i.stack.imgur.com/LmNJt.png
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-11 19:22:06

只需使用条件聚合:

代码语言:javascript
复制
SELECT X.ID,  -- add the extra columns you want here
       MAX(CASE WHEN Y.status = 'CONFIRMED' THEN Y.create_date END) as confirmed,
       MAX(CASE WHEN Y.status = 'UNCONFIRMED' THEN Y.create_date END) as unconfirmed
FROM X LEFT JOIN
     Y
     ON X.id = Y.x_id AND 
        Y.type = 'STATUS' LEFT JOIN
     Z
     ON X.some_id = Z.x_some_id
WHERE X.some_col = 'abc'
GROUP BY X.id;  -- whatever columns you want to lead the 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59283299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档