mysql - mysql查询中独立列的分组

标签 mysql sql

我正在尝试对查询结果进行分组并显示在单独的列中。

表名称:category_results

+---------+-----------------+
| cat_id  | Total           |
+---------+-----------------+
| CA001   |          150.00 | 
| CA002   |          130.00 | 
| CA002   |          200.00 |
| CA003   |           70.00 | 
| CA001   |           75.00 |
+---------+-----------------+

我想要这个结果:

+--------+--------+--------+
| CA001  | CA002  | CA003  |
+--------+--------+--------+
| 255.00 | 330.00 | 70.00  | 
+--------+--------+--------+

有什么想法吗?

最佳答案

您可以使用 SUM 结合 CASE WHEN 来实现您想要的:

SELECT SUM(t.CA001) AS CA001,
       SUM(t.CA002) AS CA002,
       SUM(t.CA003) AS CA003
FROM
(
    SELECT CASE WHEN cat_id = 'CA001' THEN Total ELSE 0 END AS CA001,
           CASE WHEN cat_id = 'CA002' THEN Total ELSE 0 END AS CA002,
           CASE WHEN cat_id = 'CA003' THEN Total ELSE 0 END AS CA003
    FROM category_results
) t

点击下面的链接即可运行演示。

SQLFiddle

关于mysql - mysql查询中独立列的分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33228509/

相关文章:

java - 防止 MySQL JDBC 驱动程序将 DateTime 转换为本地时间

php - 加入 MySql 表和 SUM

mysql - 如何将mysql_real_escape_string()的结果插入到oracle数据库中?

mysql - 基于另一列的外键

mysql - 如何在 MySQL 中查看 .csv 上传的进度

javascript - 找不到模块 "mysql"

php - 共同好友查询

mysql - 如何根据另一个表中的数据从一个表中选择数据

SQL 效率行或表

mysql - phpMyAdmin 中的正则表达式搜索