我有一个mysql连接结果,看起来像这样。
ID | Name | Score | SomeID
---------------------------
1 | abc | 100 | 2
1 | abc | 100 | 2
1 | abc | 100 | 3
1 | abc | 100 | 3
1 | abc | 100 | 4
1 | abc | 100 | 4
我希望此连接结果的结果为sum 像
ID | Name | SUM(Score) | SomeID
---------------------------
1 | abc | 200 | 2
1 | abc | 200 | 3
1 | abc | 200 | 4
这个问题有没有解决办法!任何帮助?
答案 0 :(得分:1)
试试这个:
SELECT ID, Name, SUM(Score), SomeID
FROM tableA
GROUP BY ID, Name, SomeID;
答案 1 :(得分:0)
你需要总和和分组
select
id,
name,
sum(Score) as total,
SomeID
from table_name
group by Name,SomeID
更新: Mysql可以灵活地在选择中使用聚合函数,然后在
组中不使用它们但许多RDBMS不喜欢它,在这种情况下,你必须在group by子句中添加它们。所以作为标准,它应该是 -
group by id, Name,SomeID
答案 2 :(得分:0)
试试这个:
SELECT ID,
Name,
SUM(Score) total,
SomeID
FROM table1
GROUP BY ID,
Name,
SomeID
您可以在SQLFiddle here上查看演示。
答案 3 :(得分:0)
尝试在查询中使用group by子句。在结果集中按SomeId对查询进行分组,以获得所需的输出
答案 4 :(得分:0)
按条款使用分组
select
id,
name,
sum(Score) as total,
SomeID
from table_name
group by name,SomeID,ID
答案 5 :(得分:0)
如果您只是想制作上述内容,那么您基本上是在尝试:
SELECT
id, name, sum(score), some_id
FROM table1
group by id, name,some_id
正如您所说,这不是一个表,而是一个连接结果。 如果连接结果看起来像(可能是任何东西)。
SELECT table1.id, table2.name, table2.score, table1.some_id
FROM table1 JOIN table2 ON table1.id=table2.table1_id
您需要做的就是使用连接包装查询并为其添加别名。
SELECT
x.id, x.name, x.sum(score), x.some_id
FROM
(SELECT table1.id, table2.name, table2.score, table1.some_id
FROM table1 JOIN table2 ON table1.id=table2.table1_id) x
GROUP BY x.id, x.name, x.some_id
答案 6 :(得分:0)
您只需使用数据库的聚合函数:
SELECT ID, Name,SUM(Score) as "SUM(Score)",SomeID
FROM table_name
GROUP BY ID,Name,SomeID
ORDER BY 4;
答案 7 :(得分:0)
事情很简单:
SELECT ID, Name,SUM(Score),SomeID
FROM table_name
GROUP BY SomeID;