Re: [SQL ] 計算良率join

看板Database作者 (樸實且無華)時間2年前 (2022/01/12 04:06), 編輯推噓0(001)
留言1則, 1人參與, 2年前最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1XtUDYB3 (Database)
文章代碼(AID): #1XtUDYB3 (Database)