分享

SQL Server 点滴

 Wiley Library 2013-04-15
不要在子查询中进行数学计算。暴露基础数据,由上层查询完成计算
表B 约3700万行。
表A约700万行

执行结果
方案1:2分10秒(+/- 5秒)
方案2:2分30秒(+/- 5秒)


    select 
        amount / days as result
    from B
    left join
    (
        select
id
,SUM(amount) as amount
,COUNT(DISTINCT date) as days
        from A
        group by id
    ) as AA
    on AA.id = B.id
    
    select 
result        
    from B
    left join
    (
        select
id
,SUM(amount) / COUNT(DISTINCT date) as result
        from A
        group by id
    ) as AA
    on AA,id = B.id

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多