gpt4 book ai didi

SQL计算大多数书籍的作者

转载 作者:行者123 更新时间:2023-12-03 17:42:42 25 4
gpt4 key购买 nike

我有一个书籍表、一个作者表和一个“链接器”表(作者/书籍之间的多对多链接)。
如何找到书籍数量最多的作者?
这是我的架构:

books : rowid, name

authors : rowid, name

book_authors : rowid, book_id, author_id


这就是我想出的:(但它不起作用)
SELECT count(*) IN book_authors 
WHERE (SELECT count(*) IN book_authors
WHERE author_id = author_id)
理想情况下,我想要一份前 100 位作者的报告,例如:
 author_name      book_count
-----------------------------------
Johnny 25
Kelly 12
Ramboz 10
我需要某种形式的加入吗?最快的方法是什么?

最佳答案

我会加入三个表(通过 book_authors 表),按作者分组,计算出现次数并将其限制在前 100 行:

SELECT   a.name, COUNT(*)
FROM authors a
JOIN books_authors ba ON a.rowid = ba.author_id
JOIN books b ON ba.book_id = b.rowid
GROUP BY a.name
ORDER BY 2 DESC
LIMIT 100

编辑:
实际上,我们没有使用来自 books 的任何数据。 ,只是这本书确实存在的事实,可以从 books_authors推断出来,因此可以通过删除第二个连接来改进此查询:
SELECT   a.name, COUNT(*)
FROM authors a
JOIN books_authors ba ON a.rowid = ba.author_id
GROUP BY a.name
ORDER BY 2 DESC
LIMIT 100

关于SQL计算大多数书籍的作者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38251056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com