簡體   English   中英

返回 group by SQL 中 min 和 max 函數對應的分類值

[英]Return the corresponding categorical values for min and max functions in group by SQL

我有一個包含以下列的交易表:TRANSACTION_ID,USER_ID,MERCHANT_NAME,TRANSACTION_DATE,AMOUNT

-1) query to find the first merchant a user transacts on

-2) query to find the last merchant a user transacts on

我嘗試了以下

此查詢應作為分組工作,從第一個條目中選取分類值

-)select USER_ID, Min(TRANSACTION_DATE),MERCHANT_NAME from transactions
Group by USER_ID

使用ROW_NUMBER我們可以嘗試:

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY USER_ID ORDER BY TRANSACTION_DATE) rn1,
              ROW_NUMBER() OVER (PARTITION BY USER_ID ORDER BY TRANSACTION_DATE DESC) rn2
    FROM transactions
)

SELECT USER_ID,
       MAX(CASE WHEN rn1 = 1 THEN MERCHANT_NAME END) AS FIRST_MERCHANT_NAME,
       MAX(CASE WHEN rn2 = 1 THEN MERCHANT_NAME END) AS LAST_MERCHANT_NAME
FROM cte
GROUP BY USER_ID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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