首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据另一列对一列进行求和?

如何根据另一列对一列进行求和?
EN

Stack Overflow用户
提问于 2016-06-08 03:07:16
回答 3查看 628关注 0票数 0

我有一张这样的桌子:

代码语言:javascript
复制
  ID     Item   Total 
P-001   ATK001  1500
P-002   ATK001  1750
P-002   ATK002  1250
P-003   ATK001  175
P-003   ATK002  350
P-003   ATK003  400
P-003   CTK001  750
P-003   CTK002  750
P-005   ATK004  500
P-005   ATK117  475
P-005   CTK009  1200
P-005   ATK001  400
P-005   ATK002  125

我想在“项目”栏的基础上对“总计”一栏进行求和。我创建了一些mysql查询,输出如下:

代码语言:javascript
复制
P-001   ATK001  3825
P-002   ATK002  1725
P-003   ATK003  400
P-005   ATK004  500
P-005   ATK117  475
P-003   CTK001  750
P-003   CTK002  750
P-005   CTK009  1200

我想要的输出是:

代码语言:javascript
复制
ID      Item   Total
P-001   ATK001  3825
P-002   ATK001  3825
P-002   ATK002  1725
P-003   ATK001  3825
P-003   ATK002  1725
P-003   ATK003  400
P-003   CTK001  750
P-003   CTK002  750
P-005   ATK004  500
P-005   ATK117  475
P-005   CTK009  1200
P-005   ATK001  3825
P-005   ATK002  1725

(谢谢你的帮助:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-08 03:26:47

(试试这个;)

SQL Fiddle

MySQL 5.6模式

代码语言:javascript
复制
CREATE TABLE table1
    (`ID` varchar(5), `Item` varchar(6), `Total` int)
;

INSERT INTO table1
    (`ID`, `Item`, `Total`)
VALUES
    ('P-001', 'ATK001', 1500),
    ('P-002', 'ATK001', 1750),
    ('P-002', 'ATK002', 1250),
    ('P-003', 'ATK001', 175),
    ('P-003', 'ATK002', 350),
    ('P-003', 'ATK003', 400),
    ('P-003', 'CTK001', 750),
    ('P-003', 'CTK002', 750),
    ('P-005', 'ATK004', 500),
    ('P-005', 'ATK117', 475),
    ('P-005', 'CTK009', 1200),
    ('P-005', 'ATK001', 400),
    ('P-005', 'ATK002', 125)
;

查询1

代码语言:javascript
复制
select t1.ID, t1.Item, t2.Total
from table1 t1
inner join(
    select Item, sum(Total) as Total from table1 group by Item
) t2 on t1.Item = t2.Item

Results

代码语言:javascript
复制
|    ID |   Item | Total |
|-------|--------|-------|
| P-001 | ATK001 |  3825 |
| P-002 | ATK001 |  3825 |
| P-002 | ATK002 |  1725 |
| P-003 | ATK001 |  3825 |
| P-003 | ATK002 |  1725 |
| P-003 | ATK003 |   400 |
| P-003 | CTK001 |   750 |
| P-003 | CTK002 |   750 |
| P-005 | ATK004 |   500 |
| P-005 | ATK117 |   475 |
| P-005 | CTK009 |  1200 |
| P-005 | ATK001 |  3825 |
| P-005 | ATK002 |  1725 |
票数 5
EN

Stack Overflow用户

发布于 2016-06-08 03:14:42

代码语言:javascript
复制
SELECT
    T1.ID,
    T2.Item,
    Sum(T2.Total)
FROM
    TABLE T1,
    TABLE T2
GROUP BY    T1.ID, T2.Item;
票数 2
EN

Stack Overflow用户

发布于 2016-06-08 03:16:10

代码语言:javascript
复制
SELECT
    id,
    item,
    (
        SELECT
            sum(total)
        FROM
            items i2
        WHERE
            i1.item = i2.item
    ) AS total
FROM
    items i1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37692559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档