[英]How to sum two columns by another column and group by category in SQL
我有一个如下表:
类别 | 项目1 | Item1 的孩子 | 日期 | 星期 |
---|---|---|---|---|
一种 | 3个 | 2个 | 1个 | 1个 |
一种 | 3个 | 7 | 1个 | 1个 |
一种 | 4个 | 1个 | 2个 | 1个 |
乙 | 4个 | 2个 | 1个 | 1个 |
乙 | 5个 | 6个 | 2个 | 1个 |
一种 | 2个 | 2个 | 1个 | 2个 |
一种 | 1个 | 3个 | 2个 | 2个 |
乙 | 2个 | 2个 | 1个 | 2个 |
乙 | 2个 | 1个 | 2个 | 2个 |
Item1 列有一个子项,有时会生成具有相同日期、周和类别的 2 行。 如何使用 SQL 按周和类别对 item1 和 item1 的子项的数量求和,但忽略 item1 中的重复数据以获得如下数据:
类别 | 项目1 | Item1 的孩子 | 星期 |
---|---|---|---|
一种 | 7 | 10 | 1个 |
乙 | 9 | 8个 | 1个 |
一种 | 3个 | 5个 | 2个 |
乙 | 4个 | 3个 | 2个 |
Select
ColumnA,
ColumnB,
(ColumnA + ColumnB) As Total
From
Table_Name
Group By Column_name
您可以GROUP BY
category
和week
,然后使用SUM
聚合并只获取item1
的DISTINCT
值:
SELECT category,
SUM(DISTINCT item1) AS item1,
SUM(child_of_item1) AS child_of_item1,
week
FROM table_name
GROUP BY category, week
ORDER BY category, week;
其中,对于示例数据:
CREATE TABLE table_name (Category, Item1, Child_of_Item1, "Date", Week) AS
SELECT 'A', 3, 2, 1, 1 FROM DUAL UNION ALL
SELECT 'A', 3, 7, 1, 1 FROM DUAL UNION ALL
SELECT 'A', 4, 1, 2, 1 FROM DUAL UNION ALL
SELECT 'B', 4, 2, 1, 1 FROM DUAL UNION ALL
SELECT 'B', 5, 6, 2, 1 FROM DUAL UNION ALL
SELECT 'A', 2, 2, 1, 2 FROM DUAL UNION ALL
SELECT 'A', 1, 3, 2, 2 FROM DUAL UNION ALL
SELECT 'B', 2, 2, 1, 2 FROM DUAL UNION ALL
SELECT 'B', 2, 1, 2, 2 FROM DUAL;
输出:
类别 项目1 CHILD_OF_ITEM1 星期 一种 7 10 1个 一种 3个 5个 2个 乙 9 8个 1个 乙 2个 3个 2个
db<> 在这里摆弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.