2015-10-20 47 views
0

我试图将查询的结果分组并显示在单独的列中。在mysql查询中具有独立列的组

表名: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 | 
+--------+--------+--------+ 

任何想法?

回答

2

您可以使用SUMCASE 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

+0

如果你认为你完全了解'cat_id'提前然后是。 – lad2025

+1

@ lad2025好点。让我们看看他是否接受或如果不接受,那么它需要一个不同的解决方案。 –

+0

@TimBiegeleisen谢谢你的帮助这正是我想要的。 –