表名:书。 最后一列(NoOfBooksPerCourse)是我计算以及获取所有其他列的原因
|BookID | Title | Publisher | Author | CourseID | NoOfBooksPerCourse
----------------------------------------------------------------------
| 1 | Book1| Publisher1| Author1 | 1 | 2
| 2 | Book2| Publisher2| Author2 | 1 | 2
| 3 | Book3| Publisher3| Author3 | 2 | 1
| 4 | Book1| Publisher4| Author4 | 3 | 1
我有这个表,我想选择所有的cloumns并计算NoOfBooksPerCourse列(在MySql中)。有什么建议吗?
我试过这样的事情:
SELECT Title, Publisher, Author, COUNT( CourseID ) AS NoOfBooksPerCourse
FROM Book
GROUP BY (
CourseID
)
但它没有选择表中的所有行(添加为附件链接),它只选择每个CourseID的第一行。
答案 0 :(得分:0)
要从Book
中选择所有内容,您可以使用SELECT *
。任何额外的计数都可以作为内联选择语句添加:
SELECT b1.*,
(SELECT COUNT(*) FROM Book b2 WHERE b2.CourseID = b1.CourseID) As NoOfBooksPerCourse
FROM Book b1