Mysql 要选择表中的所有列,同时使用棒状标记类似的列值吗
表名:图书。 最后一列(NoOfBooksPerCourse)是在获取所有其他列的同时要计算的内容Mysql 要选择表中的所有列,同时使用棒状标记类似的列值吗,mysql,sql,Mysql,Sql,表名:图书。 最后一列(NoOfBooksPerCourse)是在获取所有其他列的同时要计算的内容 |BookID | Title | Publisher | Author | CourseID | NoOfBooksPerCourse ---------------------------------------------------------------------- | 1 | Book1| Publisher1| Author1 |
|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
我有这个表,我想选择所有的cloumn并计算NoOfBooksPerCourse列(在MySql中)。有什么建议吗
我试过这样的方法:
SELECT Title, Publisher, Author, COUNT( CourseID ) AS NoOfBooksPerCourse
FROM Book
GROUP BY (
CourseID
)
但它并没有选择表中的所有行(作为附件链接添加),它只选择每个课程ID的第一行。要从
书籍
中选择所有内容,可以使用选择*
。任何额外的计数都可以作为内联select语句添加:
SELECT b1.*,
(SELECT COUNT(*) FROM Book b2 WHERE b2.CourseID = b1.CourseID) As NoOfBooksPerCourse
FROM Book b1
编辑您的问题,并在问题中提供示例数据和所需结果(不使用链接)。不清楚你在问什么。我刚刚添加了我正在使用的查询。我的问题专门询问数据。您的查询显然不起作用,因此无法很好地解释您要执行的操作。我添加了示例表数据。希望这有帮助。您希望从结果中得到什么?向我们展示结果数据。