我有一個表(#UPDATE圖片)含有subscriber_IDs,總,Tax_id和DOS。總數是用戶在同一服務日期DOS支付給tax_id位置的訪問次數。我正在嘗試創建另一列,將1賦予具有最高訪問權限的tax_id,將0賦予同一訂戶和DOS的所有其他Tax_id。我有許多不同的用戶,所以我需要一個通用代碼,圖片描述了一個只有一個用戶的例子。
期望的最終結果列MM(期望的結果圖片)
SELECT SUBSCRIBER_ID, Total, TAX_ID, DOS,
case WHEN Total = max(Total) then 1 ELSE 0 END as MM
FROM #Update3
GROUP BY SUBSCRIBER_ID, PAY_TO_PROVIDER_TAX_ID, DOS, Total
這是我有,但它返回一個在MM列的每一行,而我只在需要1共有3行,所有其他行都爲0。我需要這個工作在不同用戶的列表上,其中包含不同的tax_id和服務日期。
您正在按所有列進行分組,因此您的案例表達式將始終返回第一個輸出。您可能需要在這裏使用子查詢或cte。 –
您是否需要查詢一個用戶(param subscriber_id)或所有按用戶分組?我希望你不想在表格中保存這個標誌,因爲它是一個計算的字段!? – Nikolaus