【问题标题】:Convert X number of rows into columns for count SQL将 X 行转换为列用于计数 SQL
【发布时间】:2021-08-25 14:50:51
【问题描述】:

我有一个数据集,每个客户有多个记录。每行都有一个型号。我想将集合中的所有型号转换为列,以计算每个客户拥有的型号数量以及总数。我现在可以通过对型号进行硬编码来做到这一点。但我希望这是一个动态的,并随着相机型号的添加或删除而增长。任何帮助或见解将不胜感激

起始表:

Customer #    Model#    Mac #
123           Cam320     1234bbfgdv
123           Cam320     12567fkrl4
453           Cam110     574446nng3
453           Cam880     578455mmh3
453           Cam320     445445rtsy

输出

Customer #  Cam110  Cam320    Cam880   Total
123           0        2         0      2
453           1        1         1      3

【问题讨论】:

    标签: sql dynamic transpose


    【解决方案1】:

    虽然这可以通过 PIVOT 函数使用 T-SQL 完成,但最好将此功能留给报表引擎。 SQL Server 是为存储数据而构建的,不一定要显示它,最后你的总数很难动态化。该数据集已经非常适合 SSRS 报告。我建议尝试 SSRS。但是,如果您决定使用 T-SQL,请查看这篇文章。 Dynamically create columns sql

    【讨论】:

    • 在 Mike 看来,您可以使用 PIVOT 创建动态 SQL,以使列数随模型动态增长,但这会改变表的架构,从而导致下游任何消耗它的问题。这更适合可视化工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2011-10-04
    • 1970-01-01
    相关资源
    最近更新 更多