ฉันพยายามเขียนสิ่งต่อไปนี้เพื่อให้ได้จำนวน NumUsers ที่แตกต่างกันออกไปทั้งหมดดังนี้:
NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth])
สตูดิโอบริหารดูเหมือนจะไม่ค่อยมีความสุขกับเรื่องนี้ ข้อผิดพลาดจะหายไปเมื่อฉันลบDISTINCT
คีย์เวิร์ด แต่จะไม่เป็นการนับเฉพาะ
DISTINCT
ดูเหมือนจะไม่เป็นไปได้ภายในฟังก์ชันพาร์ติชัน ฉันจะหาจำนวนที่แตกต่างได้อย่างไร ฉันใช้วิธีการแบบเดิมๆ เช่นการสืบค้นย่อยที่สัมพันธ์กันหรือไม่
เมื่อพิจารณาเพิ่มเติมอีกเล็กน้อยOVER
ฟังก์ชั่นเหล่านี้อาจทำงานแตกต่างจาก Oracle ในลักษณะที่ไม่สามารถใช้ในSQL-Server
การคำนวณผลรวมที่กำลังทำงานอยู่
ฉันได้เพิ่มตัวอย่างสดที่นี่ในSQLfiddleซึ่งฉันพยายามใช้ฟังก์ชันพาร์ติชันเพื่อคำนวณผลรวมที่กำลังทำงานอยู่
COUNT
ด้วยORDER BY
แทนที่จะPARTITION BY
เป็นป่วยกำหนดในปี 2008 ฉันประหลาดใจก็ปล่อยให้คุณมีมันเลย ตามเอกสารประกอบคุณไม่ได้รับอนุญาตให้ใช้ORDER BY
สำหรับฟังก์ชันรวม