Viewer

 

用OVER实现统计


SELECT
    TJobNumber,
    TClientCode,
    TToChargePounds,
    
SUM(TToChargePounds) OVER(PARTITION BY TClientCode) TotalToChargePounds,
    
CAST(TToChargePounds*100/SUM(TToChargePounds) OVER(PARTITION BY TClientCode) AS DECIMAL(5,2)) Percentage,
    
AVG(TToChargePounds) OVER(PARTITION BY TClientCode) AvgToChargePounds,
    
MAX(TToChargePounds) OVER(PARTITION BY TClientCode) MaxToChargePounds,
    
MIN(TToChargePounds) OVER(PARTITION BY TClientCode) MinToChargePounds,
    
COUNT(TToChargePounds) OVER(PARTITION BY TClientCode) CountToChargePounds
FROM
    TaskTransactions
WHERE
    TClientCode 
IN ('LM1862','L038')

GROUP BY的不同之处是可以SELECT没有被GROUP BY的字段。而且如果一条记录需要统计多次,则OVERGROUP BY快。


posted on 2008-05-30 23:04  Viewer  阅读(224)  评论(0编辑  收藏  举报

导航