2016-06-27 21 views
3

获取与GROUP BY行假设我有如下表:在MySQL

example table

我需要的数字由'Company'排序的列'Shares'

所以,例:

ABC,INC:88624 + 5588 + 442214 + 11233

DEF公司:4556 + 444863 + 44601

有没有办法做到这使用MySQL?或者也许PHP?

+1

GROUP_CONCAT? – jarlh

+0

'select company,sum(shares) from your_table group by company' –

回答

3

聚合函数是最好的方法:

SELECT SUM(shares), company 
FROM table_name 
GROUP BY company 

SUM()将对相同的公司名称进行必要的计算。 GROUP BY将按公司显示。

如果你想具体的公司不是所有(比如说2家公司只): 您可以或许添加WHERE Company = "ABC inc" OR "DEF Corp"

1

如果要列出所有的股票,你可以使用GROUP_CONCAT和组:

select company, group_concat(SHARES) 
from my_table 
group by company 

如果你想的份额,使用的总和:

select company, sum(SHARES) 
from my_table 
group by company 
1

下文提到的查询

使用
select COMPANY, sum(shares) from table_name group by COMPANY ; 

如果你不想要总和,只需要它显示,使用:

select COMPANY, GROUP_CONCAT(shares SEPARATOR '+')from  
table_name group by COMPANY 
2

使用GROUP BY

SELECT COMPANY,SUM(SHARES) FROM <TABLE> group by COMPANY; 
1

如果你想和u可以使用聚合功能SUM()在SQL

select COMPANY,SUM(SHARES) 
from ur_table 
group by COMPANY 
1

,使用sum()。如果你想有一个列表,然后使用group_concat()

select company, 
     sum(shares) as sum_shares, 
     group_concat(shares separator '+') as list_shares 
from t 
group by company; 

separator关键字允许你把一个+

2

SELECT COMPANY,SUM(SHARES) FROM <TABLE> group by COMPANY;

+0

学习如何写出一个很好的答案:http://stackoverflow.com/help/how-to-answer –

1

使用本query

选择COMPANY,SUM(股) 从TABLE_NAME 组由COMPANY