• 【数据分析面试题】一个 面试题,我的回答


           共享:

          数据结构:

         

         姓名  类别            花费
           李  看电影          30
           李  吃饭            100
           李  旅游            500
           王  吃饭            500
           王  看电影         100
           王  买衣服         700


    展现效果:

    姓名     TOP1类别        TOP1花费         TOP2类别       TOP2花费            TOP3类别         TOP3花费
    李       旅游            500               吃饭            100               看电影            30
    王        买衣服           700               吃饭             500              看电影            100


    
    

    这题目事实上挺简单的,横列转换。效率最高的答案,看最后。。。

    。。/// 假设有更好的。 欢迎讨论

    ---------------------------------------------------------------------------------------------------------------------------------------------------------

    SELECT NAME,
           MAX(DECODE(SEQ, 1, TYPE, NULL)) HIGHEST_TYPE,
           MAX(DECODE(SEQ, 1, COST, NULL)) HIGHEST_COST,
           MAX(DECODE(SEQ, 2, TYPE, NULL)) SECOND_TYPE,
           MAX(DECODE(SEQ, 2, COST, NULL)) SECOND_COST,
           MAX(DECODE(SEQ, 3, TYPE, NULL)) THIRD_TYPE,
           MAX(DECODE(SEQ, 3, COST, NULL)) THIRD_COST
      FROM (SELECT NAME,
                   COST,
                   TYPE,
                   ROW_NUMBER() OVER(PARTITION BY NAME ORDER BY COST DESC NULLS LAST) SEQ
              FROM TEST)
     GROUP BY NAME;
    
















    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    JavaScript与C# Windows应用程序交互
    用DateTime.ToString(string format)输出不同格式的日期
    时间间隔与暂停
    C#中比较两个时间的时间差
    lambda函数的用法
    Tornado笔记
    DjangoWeb应用开发实战笔记
    再看装饰器
    描述符
    flask简单代码回顾
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4618117.html
Copyright © 2020-2023  润新知