sql-server - 在数据透视表中执行操作

标签 sql-server syntax-error pivot

我正在尝试实现PIVOT,但在其中执行基本操作时遇到问题。

当前表:

week_no  username  days      pick_count duration
------------------------------------------------
Week 50  Beck W    Wednesday 227        7978
Week 50  Beck W    Friday    320        7481
Week 50  Beck W    Friday    282        5718
Week 50  Cockram D Thursday  165        10478
Week 50  Cowell P  Thursday  145        14403
Week 50  Cowell P  Thursday  159        7450
Week 50  Cowell P  Friday    217        13101
...

预期结果:

week_no username  monday tuesday wednesday thursday friday saturday sunday
--------------------------------------------------------------------------
Week 50 Beck W    NULL   NULL    102       NULL     164    NULL     NULL
Week 50 Cockram D NULL   NULL    NULL      56       NULL   NULL     NULL
Week 50 Cowell P  NULL   NULL    NULL      50       59     NULL     NULL
...

预期结果应按如下方式计算:pick_count * 3600/持续时间。这就是我计算时遇到问题的计算。当像这样PIVOT

SELECT 
    *
FROM 
(
    SELECT 
        week_no,
        username,
        days,
        pick_count,
        duration
    FROM
        table
) AS src
PIVOT 
(
    SUM(pick_count) * 3600 / SUM(duration) FOR days IN (monday, tuesday, wednesday, thursday, friday, saturday, sunday)
) AS pvt

我得到“*”附近的语法不正确

最佳答案

PIVOT 不太灵活。

您可以仅使用旧式交叉表方法。

SELECT week_no,
       username,
       SUM(CASE WHEN days = 'monday' then pick_count end) * 3600 
                    / SUM(CASE WHEN days = 'monday' then duration end) as monday,
       SUM(CASE WHEN days = 'tuesday' then pick_count end) * 3600 
                    / SUM(CASE WHEN days = 'tuesday' then duration end) as tuesday
/*TODO: Add other five days*/
FROM   YourTable
GROUP  BY week_no,
          username 

关于sql-server - 在数据透视表中执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34511019/

相关文章:

php - 未定义索引 : topic in C:includes\topic_list. php 第 9 行

algorithm - 返回枢轴位置的就地分区

Android设置缩放动画的枢轴点

mysql - 如何在单个合并语句中执行多个更新

sql-server - 运行存储过程时断开sql server

sql-server - 如何使用 AzureRm.Sql PowerShell 库创建 Azure SQL 托管实例?

asp.net-mvc - 在NHaml中指定标签属性时出错

sql - 根据复杂(?)标准从 SQL Server 数据库中选择重复项

sql-server - t-sql语句语法错误

python - 使用 pandas 数据透视表创建子图