我们有一个mysql表,其中包含以下架构
item varchar(20)
count int
我们有一个图表,将项目分类为类别(item1和item2属于cat1和item3,item4属于cat4,但不在表格中,我们无法创建表格。
我想要cat1和cat2中存在的项目数。这可以在不加入任何表和内部查询的情况下完成吗?
答案 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
答案 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');