2012-07-15 118 views
0

我有一个数据集,没有列出最好的方式,请参阅下面的示例。count列where column1 LIKE%something%

col1|col2|col3 
john smith|10|3 
tom smith|8|3 
sean smith|12|3 
sean smith|5|33 
john smith|3|32 
john smith|6|13 

正如您所看到的,col1有多个相同的记录。

我希望能够将col1中所有具有相同值的条目分组,然后输出到一行中我还希望显示另一列,它是col2 * col3的总和,以便我的输出看起来像下面。

col1|col2|col3 
john smith|19|48|912 
sean smith|17|36|612 
tom smith|8|3|24 

在这里最好使用mySQL Sum吗?如果我不知道'WHERE'会是什么,但是我只是希望它输出每个名称的结果,我该如何编写这个select语句?

回答

3

你可以这样做太::

Select 
col1, SUM(col2), SUM(col3), SUM(col3)*SUM(col2) 
from table group by col1 
+0

谢谢,这个效果很好,如果我想通过总和排序col3 * col2有没有比ORDER BY SUM(col3)* SUM(col2)ASC更好的方法来做到这一点(它在某些情况下可能会变长)如果总和更复杂) – ak85 2012-07-15 11:49:32

+0

@ ak85:我只是给了你同样的查询Sashi kant已经回答了什么(稍作修改),但是尝试了他的查询,因为他已经将列作为别名 – 2012-07-15 12:31:01

1

试试这个::

Select 
col1, SUM(col2) as b, SUM(col3) as c, SUM(col2)*SUM(col3) as d 
from table group by col1 
+0

我得到一个错误这里**未知列“B '在'字段列表'**上面的代码。当我取出时,b * c没有错误,但显然不输出b * c的总和。我已经查看了一些关于sql别名的文档,并且看不到任何错误。你知道这里可能存在什么问题吗? – ak85 2012-07-16 09:25:32

1

试试这个:

SELECT col1,SUM(col2),SUM(col3),SUM(col2)*SUM(col3) FROM table 
GROUP BY col1 
+0

第四列是什么? – 2012-07-15 10:38:29

+0

然后你和Shanky的回答有什么区别,请发布不同的东西,如果回答你在想什么,那么请欣赏它,赞扬 – 2012-07-15 10:40:07

+1

Lol,在评论之前添加它!强调,很多人会很快回答这样一个简单的问题;) – NewInTheBusiness 2012-07-15 10:40:12

相关问题