oracle sql 提数?

问答 maxy ⋅ 于 2018-02-24 14:47:50 ⋅ 最后回复由 花牛 2018-02-24 17:20:32 ⋅ 3319 阅读

我的库有这样的一张表,表数据如下(一部分):
client_no max(消费) min(消费) date
1 4000 100 1月
1 7000 500 2月
2 9000 300 1月
3 10000 8000 1月
3 60000 30000 2月

现在想要把时间为1-2月每个客户在不同月份的消费金额串起来,形成一张新表,  得出下面的数据:
client_no    max(一月)    min(一月)    max(二月)      min(二月)    
     1             4000             100            7000               500
     2             9000             300                0                   0
     3             10000           8000           60000           30000

     同一客户号的数据拼为一行,新表的表头要重新生成。
     求大神指点一下。
回复数量: 4
  • maxy
    2018-02-24 15:40:12

    问题已经解决了, 是用 pivot 函数; 哎,这中问题还是要专业的 dba做

  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2018-02-24 15:58:03

    行转列呗?

  • maxy
    2018-02-24 15:58:53

    嗯。是的!!

  • 花牛 花一般的男子
    2018-02-24 17:20:32

    1.对原表分组建立一个视图
    CREATE VIEW table_view as
    select client_no FROM 第一个表的name
    GROUP BY client_no;

    2.建表,建你自己要的那个表

    3.插入数据,从视图里拿到每一个client_no,然后按照client_no从原表查找数据,插入新表

    ps:3需要使用JDBC

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter