[英]How I can filter 1 column base on unique value in 2 other column?
任務是“在每個支付服務中按存款金額查找最活躍的賬戶”,所以我使用以下代碼從數據庫中創建了一個臨時表並按以下方式進行分組
DROP TABLE IF EXISTS #Task3
CREATE TABLE #Task3
(
service_name VARCHAR (100),
account_id BIGINT,
deposit_amount INT
)
SELECT *
FROM #Task3
INSERT INTO #Task3
SELECT service_name, account_id, deposit_amount
FROM IntouchGames.dbo.Transactionlist
JOIN provider ON Transactionlist.Provider_id = provider.Provider_id
SELECT DISTINCT TOP 5
service_name, account_id,
SUM(deposit_amount) AS SUM_deposit_amount
FROM
#Task3
GROUP BY
service_name, account_id
ORDER BY
SUM_deposit_amount DESC
但這僅顯示 1 種 service_name 中的前 5 個,我需要唯一的服務名稱,如下所示:
此外,我對下一個任務“查找每個支付服務的前 2 個支付提供商,每個月在數據集中可用”一無所知
我認為您需要的是一個子查詢,如下所示:
SELECT service_name,max(SUM_deposit_amount) as yourresult from
(
SELECT service_name, account_id, SUM(deposit_amount) as SUM_deposit_amount
FROM #Task3
GROUP BY service_name, account_id
)
GROUP BY service_name
ORDER BY 2 DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.