我在MySQL中有一个名为' books'
的下表我想选择author_lname
以及每位作者撰写的书籍数量但 i如果任何作者撰写的书籍数量为1
则应显示作为1 Book
,如果写的书数大于1
,那么我想将单词Books
与书面数量连接起来。
为了达到这个目的,我尝试了以下查询
SELECT author_lname,
CASE
WHEN COUNT(*) = 1 THEN '1 Book'
ELSE CONCAT(COUNT(*),' Books')
END AS 'Book Count'
FROM books
GROUP BY author_lname, author_fname;
正如您所看到的,查询的输出不是我想要的。请告诉我为什么我得到这个输出,我做错了什么以及如何获得所需的输出?
答案 0 :(得分:1)
你错过了围绕CONCAT的演员阵容;)
SELECT author_lname,
CASE
WHEN COUNT(*) = 1 THEN '1 Book'
ELSE CAST(CONCAT(COUNT(*),' Books') AS CHAR)
END AS 'Book Count'
FROM books
GROUP BY author_lname, author_fname;