用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的字段。而且如果一条记录需要统计多次,则OVER比GROUP BY快。
浙公网安备 33010602011771号