表[...]具有以下相关属性:
RENTAL**(成员标识,职务标识)**
MEMBER**(成员标识,姓氏,名字)**
此任务是统计每个成员借阅某本书的次数。例如,member_id102的成员在title_id99的书的租赁表中可能有2个条目。对于每个成员,显示他借阅每本书的次数。
现在,我的(糟糕的)想法是这样的:
SELECT m.member_id, r.title_id, m.last_name, m.first_name, count(*)
FROM (SELECT rr.title_id, m.member_id
FROM rental rr
WHERE rr.title_id > = r.title_id and m.member_id = rr.title_id)
FROM member m,
rental r
WHERE m.member_id = r.member_id
它不起作用,如果有人指导我做错了什么,我会很感激
2条答案
按热度按时间doinxwow1#
像这样试试...
如果您链接数据表,您仍然可以使用汇总函数,例如Count(),并依未汇总的数据行来群组数据。这样应该可以完成工作。此致...
5hcedyr02#
在Oracle 12中,可以使用
LATERAL
联接:或者您可以使用
LEFT OUTER JOIN
:或者,将聚合移动到外部查询:
如果您使用
INNER JOIN
,则当成员没有借阅任何书籍时,您将不会得到任何结果。fiddle