簡體   English   中英

如何根據其他 2 列中的唯一值過濾 1 列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM