ฉันกำลังสร้างแบบสอบถามด้วยGROUP BY
ประโยคที่ต้องการความสามารถในการนับระเบียนตามเงื่อนไขบางอย่างเท่านั้น (เช่นนับเฉพาะระเบียนที่ค่าคอลัมน์ที่แน่นอนเท่ากับ 1)
SELECT UID,
COUNT(UID) AS TotalRecords,
SUM(ContractDollars) AS ContractDollars,
(COUNTIF(MyColumn, 1) / COUNT(UID) * 100) -- Get the average of all records that are 1
FROM dbo.AD_CurrentView
GROUP BY UID
HAVING SUM(ContractDollars) >= 500000
COUNTIF()
บรรทัดเห็นได้ชัดว่าล้มเหลวตั้งแต่ยังไม่มีฟังก์ชั่น SQL พื้นเมืองเรียกว่าCOUNTIF
แต่ความคิดที่นี่คือการกำหนดอัตราร้อยละของทุกแถวที่มีค่า '1' สำหรับ MyColumn
มีความคิดเห็นเกี่ยวกับวิธีการนำไปใช้อย่างเหมาะสมในสภาพแวดล้อม MS SQL 2005 หรือไม่
ISNULL
คุณสามารถทำแทนCASE WHEN myColumn IS NULL
หรือใช้ifnull
( stackoverflow.com/a/799406/1861346 )