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