MySQL 查询 - 计算查询中的值

标签 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

最佳答案

如果您确定只能使用 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

关于MySQL 查询 - 计算查询中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592787/

相关文章:

Mysql错误: 1222 when I am creating a new table from two existing tables

mysql - 将 html 页面存储在 Mysql 数据库或文件中

sql - JOINS 和 SUBQUERIES 之间有什么区别?我们可以用连接做的任何事情也可以用子查询来做,反之亦然吗?

database - 使用 Winforms 应用程序部署 SQL Server 数据库

mysql - Django 模型中存储商业商店交易中购买的元素的有效方法

c# 遇到 mysql : Incorrect string value code 1366 for column at row 1 问题

php - STRTOTIME 从 mysql 获取日期和数据并在 php 上连接它们

PHP选择重复记录

java - 使用 Hibernate 用外部 id 注释类的正确方法是什么?

MySQL过滤多行中的列值?