mysql中的元素总和

时间:2012-11-19 08:06:28

标签: mysql sql nested

我们有一个mysql表,其中包含以下架构

item varchar(20)
count int 

我们有一个图表,将项目分类为类别(item1和item2属于cat1和item3,item4属于cat4,但不在表格中,我们无法创建表格。

我想要cat1和cat2中存在的项目数。这可以在不加入任何表和内部查询的情况下完成吗?

2 个答案:

答案 0 :(得分:1)

你可以这样做:

SELECT 
  c.categoryname, 
  SUM(IFNULL(i.`count`,0))
FROM 
(
   SELECT 'item1' itemname, 'cat1' CategoryName
   UNION ALL
   SELECT 'item2' , 'cat1'
   UNION ALL
   SELECT 'item3' , 'cat2'
   UNION ALL
   ...
) c
LEFT JOIN items i ON c.itemname = i.item
GROUP BY c.categoryname

SQL Fiddle Demo

答案 1 :(得分:1)

SELECT  'Cat1', sum(table1.count) FROM Table1 WHERE item IN ('Item1','Item2') UNION SELECT 'Cat2', sum(table1.count) FROM Table1 WHERE item IN ('Item3','Item4');