0
我有以下表格:PostgreSQL的:许多到许多与计数房源
- 库
- 书
- librairies_books
及以下:
- A
library
有许多书通过表libraries_books
。 - A
book
可以通过表libraries_books
属于许多库。
我需要显示库统计:
Name, Number of copies, Number of books
因此,如果库有书-1 3份,并预订-2 4份,统计应显示
"Library 1", 7, 2
7 is the number of total copies
2 is the number of books
这是当前的函数,但它不返回有效的书籍数。
create or replace function listing()
returns table (
"ID" int,
"NAME" varchar,
"NUMBER OF COPIES" bigint,
"NUMBER OF BOOKS" bigint) as $$
begin
return query
select libraries.id, libraries.name, count(libraries_books.id), count(books.id)
from libraries
left join libraries_books
on libraries.id = libraries_books.library_id
left join books
on libraries_books.book_id = books.id
group by books.id, libraries.id;
end;
$$ language plpgsql;