使用MSSQL集結SQL結果,兩個表,然後彙總結果
我有用戶表,和產品表它們認購。這些訂閱是免費(F)或付費(P)。我已經加入了這些表格,使用case語句將F/P值轉換爲數字,然後通過用戶ID彙總這些值,想法是任何只有免費賬戶的人都會有0的總和,至少有一個付費帳戶價值1或更高。我用下面的遠獲得這樣的:
SELECT t1.user_id, SUM(
CASE
WHEN t2.free_paid = 'P'
THEN 1
ELSE 0
END) as highest
FROM users t1 INNER JOIN accounts t2
ON t1.user_id = t2.user_id
WHERE t2.account = 'A'
GROUP BY t1.user_id
ORDER BY t1.user_id
這將產生類似的結果:
755 2
1259 2
2031 1
3888 0
這意味着所有的,但3888至少有一個支付賬戶。
但是現在我想簡單地添加這些數據來獲得我們的兩個值,一個是至少有一個付費賬戶的用戶數(例如3個),另一個是隻有免費賬戶的用戶數例)。
我試過聲明兩個變量,例如: @free和@paid,並使用case語句將這些值包裝到子查詢中,然後將其作爲子查詢添加到這些值中,但無法運行。
任何想法?
預期結果是什麼? –
對於上面的數據,付費:3,免費:1 – SwS