sql - SQL - 拆分数据行并分配得分值
问题描述
我为糟糕的标题道歉,因为我不知道如何最好地措辞。
我有一个表,我返回这样的行:
Opener | Closer | Policy Ref | Transaction Type
Agent A | Agent B | ABCD01EF01 | New Business
Agent C | Agent C | ZYXA01EF01 | New Business
创建代码
CREATE TABLE #temptable ( [Opener] varchar(50), [Closer] varchar(50), [PolicyRef] varchar(10), [Transaction Type] varchar(14) )
INSERT INTO #temptable
VALUES
( 'Agent C', 'Agent C', 'ZYXA01EF01', 'New Business' ),
( 'Agent A', 'Agent B', 'ABCD01EF01', 'New Business' )
DROP TABLE #temptable
我们暂时基本上得分为 1.0,对于每一行,如果 Opener = Closer,那么“Score”列应该是 1.0 并且只返回一行,但是如果 Opener <> Closer 应该有 2 行带有 '在 Opener 和 Closer 之间的得分为 0.5,输出应该是这样的
Agent | Policy Ref | Transaction Type | Score
Agent A | ABCD01EF01 | New Business | 0.5
Agent B | ABCD01EF01 | New Business | 0.5
Agent C | ZYXA01EF01 | New Business | 1.0
我正在考虑使用 row_numbering 交叉应用来定义每个“Policy Ref”是否有超过 1 行,但我似乎无法让它工作。
我以前做过这个,但是它是一个使用临时表和 cte 来更新和移动信息的存储过程,如果你愿意的话,我正在寻找一个“低脂肪”版本。
解决方案
推荐阅读
- docker - Azure DevOps pipeline not setting docker memory
- html - 在一行中显示所有列,并且不会溢出到 HTML 中的下一行
- c# - Failed http request WebApi using Angular
- javascript - Problem with QuickSort algorithm causing Maximum Call Stack
- google-sheets - Combing base data set for a formula from two *other* Google sheets
- java - 创建包含二维数组的构造函数
- c++ - 如何通过方括号重载访问我自己的数组类的元素?
- google-apps-script - 根据日期将工作表从模板复制到新工作簿
- r - R根据可变性删除重复的列
- python - 如何在大管理器中同时运行异步启动器/同时运行 asyncio 函数