mysql - 添加三个子查询的结果

标签 mysql sql

我有这张表:

id   item_name_1   quantity 1   item_name_2   quantity_2   item_name_3   quantity_3
-----------------------------------------------------------------------------------
1    Apple         2            Pear          3            Orange        5
2    Pear          1            Apple         4
3    Orange        6
4    Apple         1            Pear          2            Orange        3

我想要这个结果:

item     total
--------------
Apple    7
Pear     6
Orange   14

我尝试过这个:

SELECT

(SELECT item_name_1, SUM(quantity_1) AS count FROM table1
GROUP BY item_name_1) AS item,

(SELECT item_name_2, SUM(quantity_2) AS count FROM table1
GROUP BY item_name_2) AS item,

(SELECT item_name_3, SUM(quantity_3) AS count FROM table1
GROUP BY item_name_3) AS item,

SUM(count) AS total
FROM table1
GROUP BY item;

错误代码:1241。操作数应包含 1 列

有什么建议吗?

最佳答案

当只能有一列时,您在子查询中选择了两列。

这样的东西会给你你正在寻找的东西:

SELECT item_name, SUM(quantity) AS quantity
FROM
(SELECT item_name_1 AS item_name, SUM(quantity_1) AS quantity
FROM table1
GROUP BY item_name_1

UNION ALL

SELECT item_name_2 AS item_name, SUM(quantity_2) AS quantity
FROM table1
GROUP BY item_name_2

UNION ALL

SELECT item_name_3 AS item_name, SUM(quantity_3) AS quantity
FROM table1
GROUP BY item_name_3) AS ABB1
GROUP BY item_name;

关于mysql - 添加三个子查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20577042/

相关文章:

mysql - 用于更新谷歌日历的表单

mysql - 创建表时出现错误#1064 mysql

mysql - 如何获取SQL组合字段结果

sql - 从 SQL Server 中的表的每一行中获取单词 `href` 和 `nofollow` 的计数

sql作业和日期时间参数

mysql - Django 分页和注释

MySQL - 使用新 ID 插入表

java - 如何在 hibernate/spring 中使用 LOCK IN SHARE MODE?

java - Hibernate:单个表中的多个@ManyToMany 关系

mysql - 为什么我无法删除此查询中不存在其他列的列?