带有计数的MySQL表转换

时间:2013-06-19 14:09:24

标签: mysql count row summary

我有一个大型查询,我将在下面进行简化,以便更容易理解。我不确定如何最好地对我需要做的事情进行分类,除了说我需要分析我的数据并产生一些数据。

在这个例子中,我有一个关于书籍的信息表

Author, Title, Category

哪个类别可以是历史,小说,运动或旅行

我需要的输出是

Author, count(History), count(Fiction), count(Sport), count(Travel)

每个作者。

示例输出:

Author        History   Fiction   Sport   Travel
J.Patterson      0         21       1       3
R.Ludlum         3         43       3       0

可能需要在最后添加一个总列。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

SELECT
    Author,
    SUM(Category='History') AS 'History',
    SUM(Category='Fiction') AS 'Fiction',
    SUM(Category='Sport') AS 'Sport',
    SUM(Category='Travel') AS 'Travel'
FROM books
GROUP BY Author

答案 1 :(得分:0)

为什么不使用可扩展且更好的输出,例如Author | CategoryName | Count

SELECT Author, Category, COUNT(*) FROM books GROUP BY Author, Category;