MySQL查询 - 计算查询中的值

时间:2014-02-06 02:20:19

标签: mysql database

这是我的示例表(假设我只有3个类别):

id user    item    category
----------------------------
1  myuser  item1   1
2  myuser  item2   2
3  myuser  item3   2
4  myuser  item4   2
5  myuser  item5   2
6  myuser  item6   3

我正在尝试进行一个总结类别的查询以获得此结果:

user    cat_1   cat_2   cat_3
--------------------------------
myuser  1       4       1

什么是最好的方法? 感谢

编辑:扩展方法(抱歉我的错误)

我的表格如下:

id user    item    category  total
------------------------------------
1  myuser  item1   1         2
2  myuser  item2   2         6
3  myuser  item3   3         4

我如何查询它以获得此结果:

user    cat_1   cat_2   cat_3
--------------------------------
myuser  2       6       4

1 个答案:

答案 0 :(得分:3)

如果您确定只能使用3个类别:

select
    user,
    sum(if(category=1,1,0)) cat_1,
    sum(if(category=2,1,0)) cat_2,
    sum(if(category=3,1,0)) cat_3
from table
group by user