簡體   English   中英

需要兩個計算字段但基於不同的where子句

[英]Need two calculated field but based on different where clause

我有一張表,其中包含潛在客戶數量,optyid,員工姓名和配額。

我想編寫一個查詢,使我可以按員工獲取平均潛在客戶數量和配額總和。

我以為這很容易,但是問題是,對於不包含optyid的行,提前量顯示為0,提前量顯示為0作為占位符。 當我取所有可用的潛在總金額的平均值時,這是錯誤的,因為其中包含了0。 為了避免這種情況,我編寫了以下查詢。

SELECT
 employeename,
 avg(leadamount) AS [avglead],
 0 AS QUOTA
FROM TABLE
WHERE TABLE.optyid IS NOT NULL
GROUP BY employeename

UNION

SELECT
 employeename,
 0 AS [avglead],
 sum(quota) AS [QUOTA]
FROM TABLE 
WHERE TABLE.optyid IS NULL
GROUP BY employeename

無論如何,有沒有將它們合並在一起的方法,所以我只能從TABLE中拉一次? TABLE太大,以至於擁有兩個子查詢要花費很長時間。 我知道我可能可以對同一張表使用左連接,但是我認為這不會節省很多時間,因為它仍然需要兩次查詢TABLE。

我感謝任何投入

SELECT
 employeename,
 avg(CASE WHEN TABLE.optyid IS NULL THEN leadamount END) AS [avglead],
 sum(CASE WHEN TABLE.optyid IS NOT NULL THEN quota END) AS [QUOTA]
FROM TABLE
GROUP BY employeename

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM