zoukankan      html  css  js  c++  java
  • 【数据分析面试题】一个 面试题,我的回答

           共享:

          数据结构:

         

         姓名  类别            花费
           李  看电影          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;
    
















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

  • 相关阅读:
    C#防止窗口重复打开
    c#image与byte数组的转换
    物理网卡地址
    C#[WinForm]实现自动更新
    js计算散点图方程式
    js遮罩效果
    js实现四舍六入 奇进偶舍
    ajax加载表格数据
    C#创建和调用WebService详细教程
    .NET中的CTS、CLS和CLR
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4618117.html
Copyright © 2011-2022 走看看