簡體   English   中英

計算列中具有相同值的行數

[英]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_idvarchar轉換為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM