簡體   English   中英

如何在選擇多列的單列中顯示 select 個唯一值?

[英]How do I select unique values in a single column with multiple column selected?

該查詢實際上很好並且正在運行,但它與 A.CONTRACT_NUMBER 列不同 select。

這是代碼:

SELECT DISTINCT A.CONTRACT_NUMBER
, A.DTIME_SIGNATURE
, A.ID_CUID
, A.CLIENT_SEGMENT
, A.CLIENT_GENDER
, A.CLIENT_AGE
, A.CNT_SIGNED
, A.AMT_SIGNED
, A.INSTALMENTS
, A.PRODUCT
, B.AMT_INTEREST_INCOME
  FROM DM_SALES.V_SALES_DM_DATA A
  LEFT JOIN DM_FIN.FIN_LTV_DATAMART B ON A.CONTRACT_NUMBER = B.CONTRACT_NUMBER
  WHERE 1=1
  AND A.CONTRACT_STATE <> 'Cancelled' 
  AND a.cnt_signed=1 
  AND A.LOAN_TYPE = 'Consumer Loan'
  AND (TRUNC(A.DTIME_SIGNATURE) BETWEEN DATE'2022-08-01' AND DATE '2022-08-31')
  GROUP BY A.CONTRACT_NUMBER
  ORDER BY A.DTIME_SIGNATURE
;

運行正常,但查了下數據,A.CONTRACT_NUMBER列還是有重復的值。 A.CONTRACT_NUMBER 就像主鍵列,我想為該列添加 select 個唯一值

感謝:D

對於每個合同,您需要數據集市表中的平均利息收入,因此按合同聚合數據集市數據並將此結果加入您的銷售額 data.table。

SELECT
  sd.*,
  dm.avg_interest_income
FROM dm_sales.v_sales_dm_data sd
LEFT JOIN 
(
  SELECT contract_number, AVG(amt_interest_income) AS avg_interest_income
  FROM dm_fin.fin_ltv_datamart
  GROUP BY contract_number
) dm ON dm.contract_number = sd.contract_number
WHERE sd.contract_state <> 'Cancelled' 
  AND sd.cnt_signed = 1 
  AND sd.loan_type = 'Consumer Loan'
  AND sd.dtime_signature >= DATE '2022-08-01'
  AND sd.dtime_signature < DATE '2022-09-01'
ORDER BY sd.dtime_signature;

暫無
暫無

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

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