我正在尝试根据是否有多行满足条件来划分一列的值。对于此示例,所有书籍都有一位“主要”作者,该作者将始终获得满分。书籍也可以有一个或多个“第二”作者,如果一本书有多个第二作者,则分数在第二作者之间平均分配。]
所需的输出是使最后一列为'NewPoints'示例:
书1的点值为1,只有一位第二作者,因此,第二作者获得了完整的1点值。
第二本书的得分值为1,并且有两个第二作者,因此,第二作者的得分均为0.5。
第三本书的得分值为0.5,并且有三位第二作者,因此,第二作者的得分均为0.16。
Select
b.BookID,
b.BookName,
bd.points,
a.AuthorName,
a.AuthorType,
From Book as b
LEFT JOIN bookdetails as bd
ON b.BookID = bd.BookID_FK
LEFT JOIN authors as a
ON bd.AuthorBookID = a.AuthorBookID
BookID | BookName |Points|AuthorName |Author Type | NewPoints
1 | Ocean's 11 | 1 | James Smith | Primary | 1
1 | Ocean's 11 | 1 | Linus Key | Secondary | 1
2 | Number Two | 1 | Jason Pitt | Primary | 1
2 | Number Two | 1 | Will Franks | Secondary | 0.5
2 | Number Two | 1 | Donald Pe | Secondary | 0.5
3 | Cactus Jack | 0.5 | Brad Saul | Primary | 0.5
3 | Cactus Jack | 0.5 | Will Franks | Secondary | 0.16
3 | Cactus Jack | 0.5 | Linus Key | Secondary | 0.16
3 | Cactus Jack | 0.5 | George Bray | Secondary | 0.16
我正在尝试根据是否有多行满足条件来划分一列的值。对于此示例,所有书籍都有一位“主要”作者,该作者将始终获得完整的...
如果只有两种类型: