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;