我有这样的代码:
select inventory.store_id as store_id,
film.title as Titel_Film,
count(film.film_id) as Anz_ausleihbar
from film
join inventory on film.film_id = inventory.film_id
join (select rental.inventory_id, rental.return_date
from rental
group by rental.inventory_id) as rental2
on rental2.inventory_id = inventory.inventory_id
where film.title like '%B'
and inventory.store_id = 1
group by film.film_id
order by inventory.store_id asc, film.title desc我得到错误: ORA-00905:缺少关键字。
感谢您的帮助!
发布于 2017-07-25 16:55:16
将您的GROUP BY更改为
GROUP BY store_id, Titel_Film 使用group by时,需要为所有未汇总或聚合的字段指定“组字段”。
发布于 2017-07-25 20:58:09
in运行更快,如果不需要返回数据,则比join更快。这还删除了表alias.as语句。别名中的所有非聚合字段
。
SELECT I.store_id as store_id
, f.title as Titel_Film
, count(f.film_id) as Anz_ausleihbar
FROM film
INNER JOIN inventory I
ON f.film_id = I.film_id
WHERE f.title like '%B'
AND i.store_id = 1
AND exists (SELECT *
FROM rental r2
WHERE r2.inventory_ID = i.inventory_ID)
GROUP BY I.store_id
, film.title
ORDER BY i.store_id asc, f.title deschttps://stackoverflow.com/questions/45297749
复制相似问题