[英]Count number of Rows with the same value in a Column
我有這兩個實體及其屬性:
book - book_id、book_name、author_id、editor_id、subject_id、isbn
作者 - author_id, fn, ln
我必須用最多的行數查詢作者,這里是屬性和實體:
| book_id | book_name | author_id | editor_id | isbn | -------------------------------------------------------------- | 1 | Book1 Title | Author1 | Editor1 | 8000-9000 | | 2 | Book2 Title | Author2 | Editor1 | 8000-9001 | | 1 | Book1 Title | Author1 | Editor1 | 8000-9002 | | 3 | Book2 Title | Author2 | Editor1 | 8000-9003 |
| author_id | fn | ln | --------------------------------- | 1 | name1 | lname1 | | 2 | name2 | lname2 | | 3 | name3 | lname3 |
這是我的代碼:
SELECT author.author_id, author.fn, author.ln, COUNT(DISTINCT book.editor_id) as num
FROM `editor`, `book`
GROUP BY `editor_id`
LIMIT 0,1
但當然我沒有得到我想要的。 輸出必須是:
| author_id | fn | ln | --------------------------------- | 1 | name1 | lname1 |
因為“author_id = 1”在書籍上有 2 個條目。
試試這個,但請注意,我將author_id
從varchar
轉換為int
):
SELECT book_count,a.author_id,a.fn, a.ln
FROM author a
JOIN
(
SELECT c.author_id,COUNT(*) book_count FROM book c
GROUP BY c.author_id
) b
ON a.author_id = b.author_id
ORDER BY book_count DESC LIMIT 1
這是SQLFiddle 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.