zoukankan      html  css  js  c++  java
  • 使用SQL行转列函数pivot遇到的问题

    背景:对投票的结果按照单位进行汇总统计,数据库中表记录的各个账号对各个选项的投票记录。马上想到一个解决方案,先根据单位和选项进行Group By,然后再行转列得出单位对各个选项的投票情况。

    with list as (
        select GroupId,ANSWER,count(1) as num from Vote GROUP BY GroupId,ANSWER
    )
    select * from list pivot(sum(num) for Answer in (1,2,3,4,5,6)) pvt
    

    PS:数据库中记录的投票选项是1 2 3这样的,果然无意中就留下了一个坑!

    一脸懵逼,为啥别人的demo都跑的这么流畅啊!这个报错提示也没什么头绪!没办法还是要硬着头皮上啊!然后网上就各种pivot关键字找找找!哎,突然发现有人在sql中对pivot中列名部分用[]将各个列名包起来了。恍然大悟,这个报错不就是列名或者说字段名不能直接用数字开头!!!赶紧改一下,一切ok!!!

    with list as (
        select GroupId,ANSWER,count(1) as num from Vote GROUP BY    GroupId,ANSWER
    )
    select * from list pivot(sum(num) for Answer in ([1],[2],[3],[4],[5],[6])) pvt
    
    

  • 相关阅读:
    HTTP BIN测试
    JavaMail
    Linux内存分析
    HDU 4118 树形DP Holiday's Accommodation
    线性方程组的求解(C++)
    线性方程组的求解(C++)
    区间树(segment tree)
    区间树(segment tree)
    同余定理在算法求解中的应用
    同余定理在算法求解中的应用
  • 原文地址:https://www.cnblogs.com/cplemom/p/11015161.html
Copyright © 2011-2022 走看看