Re: [SQL ] 計算良率join
※ 引述《ctr1 (【積π】)》之銘言:
: -------------------------------
: ID QTY GOOD BAD TEST
: -------------------------------
: A 1000 800 200 F
: A 200 90 110 R
: A 110 80 30 R
: B 500 450 50 F
: B 50 30 20 R
: 想請教板上各位前輩,
: 若是我最終想呈現的結果為
: ID FIRST_YIELD FINAL_YIELD
: ----------------------------
: A 0.8 0.97
: B 0.9 0.96
: 0.8 = 800/1000 0.97 = (800+90+80)/1000
: 0.9 = 450/500 0.96 = (450+30)/500
: 我目前想到的做法是
: 先分別計算
: FIRST_YIELD、LAST_YIELD
: 再透過JOIN的方式將資料組合起來
: 呈現最終結果,
: 是否有更好的撰寫方式
: 謝謝指導~
CREATE TABLE #Temp (ID nvarchar(50), Qty float, Good float,
BAD float, TEST varchar(50));
GO
INSERT INTO #Temp VALUES
('A', 1000, 800, 200, 'F')
, ('A', 200, 90, 110, 'R')
, ('A', 110, 80, 30, 'R')
, ('B', 500, 450, 50, 'F')
, ('B', 50, 30, 20, 'R')
Select ID
, max(case when TEST='F' then Good/Qty else 0 end) as FIRST_YIELD
, 1-min(BAD)/max(Qty) as FINAL_YIELD from #Temp Group by ID
-------------------------------
ID FIRST_YIELD FINAL_YIELD
A 0.8 0.97
B 0.9 0.96
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.226.137 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1641931618.A.2C3.html
→
01/12 08:26,
2年前
, 1F
01/12 08:26, 1F
推
02/25 15:37, , 2F
02/25 15:37, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章