OracleSQL -不是一个单组组函数-我需要加入2个单独的查询吗?



所以我目前正在做一个项目,我正在做Oracle SQL的最后一个问题,其中我需要:

"显示所有销售最多的图书的出版商名称、图书类别、图书ISBN号、图书标题和图书零售价(格式为' $ '和2位小数)可从书店获得的书目少于三个。">

本质上,我有以下代码:

SELECT p.name, b.category, b.ISBN, TO_CHAR(b.retail, '$99.99')"Retail price"
FROM Books b, Orderitems o, publisher p
WHERE b.pubid = p.pubid
AND b.ISBN = o.ISBN
HAVING COUNT(b.category) > 3

,我得到一个错误,说第1行不是一个单一的组函数,如果我把它改为and,而不是我得到一个错误,说"组函数不允许在这里"

如果有人能给我指出正确的方向,我会非常感激,因为我不太确定如何进行!

非常感谢!

样本数据会有所帮助;同时,看看这是否有帮助。

with fewer as
-- number of available titles
(select b.isbn, count(*) cnt
from books b
group by b.isbn
),
data as
(select p.name,
b.category,
b.isbn,
sum(b.retail) sum_retal,
rank() over (order by sum(b.retail) desc) rnk
from publisher p join books b on b.pubid = p.pubid
join fewer f on f.isbn = b.isbn 
where f.cnt < 3
group by p.name, b.category, b.isbn                 
)
select d.name, 
d.category,
d.isbn,
d.sum_retail
from data d       
where d.rnk = 1;   

最新更新