问题是
任何艺术作品的详细信息沿着创作该作品的艺术家的全名,该作品至少有两个副本记录在数据库中。
我试着使用这个代码,但它什么也没有显示:
SELECT w.WorkID, w.Title, w.Copy, w.Medium, w.Description,
a.FirstName || ' ' || a.LastName AS ArtistFullName
FROM dtoohey.Work w,
dtoohey.artist a
WHERE w.ArtistID = a.ArtistID
AND w.WorkID IN (
SELECT w.WorkID
FROM dtoohey.Work w
GROUP BY w.WorkID
HAVING COUNT(w.copy) > 2
);
我非常困惑,不知道该为having count
添加或更改什么。
数据显示副本如下图所示。
the data shown of the 'copy'
有人能帮我解决这个问题吗?
1条答案
按热度按时间hs1rzwqc1#
你需要分析你的数据,并计算出哪些是相同的副本。如果
WorkID
是主键,则只有一行具有该标识符;在这种情况下,您需要使用一些其他方法来检测副本,例如Title
和ArtistID
的组合。此外,
HAVING COUNT(w.copy) > 2
将检查是否有三个或更多副本。您希望> 1
或>= 2
检查两个或多个副本。您还可以使用分析函数来计算重复项:
其中,对于样本数据:
两个输出:
| 工作ID|标题|副本|中等|说明|艺术家全名|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 1|手指画|五分之一|纸上亚克力|手指画|爱丽丝·艾博特|
| 2|手指画|4/5|纸上亚克力|手指画|爱丽丝·艾博特|
| 4|半头牛|1/2|动物标本剥制术|前半部分|卡罗尔伯爵|
| 5个|半头牛|2/2|动物标本剥制术|左半部分|卡罗尔伯爵|
fiddle