简体   繁体   English

Mysql select 查询与基于两列的组

[英]Mysql select query with group based on two column

I have a table as follows Contrib我有一张如下表

'Id ward_id  Goods   Amount
1.  2       beans   2 bags
2.  2       Maize   30 bags
3.  4       Beans   5 bags
4.  4      Maize   26 bags
5.  2      Beans   40 bags
6.  4      Maize  1 bags '

I created a select query我创建了一个 select 查询

Select ward_id,goods,sum(amount) as amount group by goods and ward_id;

The query is not working查询不工作

My desired results is我想要的结果是

Contrib贡献

'Id ward_id  Goods   Amount
1.  2       beans   42 bags
2.  2       Maize   56 bags
3.  4       Beans   45 bags
4.  4      Maize   26 bags

Where is my problem我的问题在哪里

You had it almost right, but the corerect syntax in myslq is你几乎是对的,但 myslq 中的 corerect 语法是

Select ward_id,goods,sum(amount) as amount 
FROM Contrib
group by goods,ward_id
ORDEr By ward_id;

Schema (MySQL v5.7)架构(MySQL v5.7)

CREATE TABLE Contrib (
  `Id` INTEGER,
  `ward_id` INTEGER,
  `Goods` VARCHAR(5),
  `Amount` INTEGER
);

INSERT INTO Contrib
  (`Id`, `ward_id`, `Goods`, `Amount`)
VALUES
  ('1', '2', 'beans', '2'),
  ('2', '2', 'Maize', '30'),
  ('3', '4', 'Beans', '5'),
  ('4', '4', 'Maize', '26'),
  ('5', '2', 'Beans', '40'),
  ('6', '4', 'Maize', '1');

Query #1查询 #1

Select ward_id,goods,sum(amount) as amount 
FROM Contrib
group by goods,ward_id
ORDEr By ward_id;

| ward_id | goods | amount |
| ------- | ----- | ------ |
| 2       | beans | 42     |
| 2       | Maize | 30     |
| 4       | Maize | 27     |
| 4       | Beans | 5      |

View on DB Fiddle在 DB Fiddle 上查看

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM