的MySQL 5.0.45请在复杂的SQL查询帮助
表A具有以下字段(列): 1. transcation_id
2. CLIENT_NAME
3. ITEM_ID
4 ....
现在我需要找出每个客户端通过交易次数进行了多少次交易。结果应该是这样的:
汤姆7事务
杰克5交易
麦克2交易
如果客户没有交易他的名字不应该是诠释他的名单。
预先感谢您!
的MySQL 5.0.45请在复杂的SQL查询帮助
表A具有以下字段(列): 1. transcation_id
2. CLIENT_NAME
3. ITEM_ID
4 ....
现在我需要找出每个客户端通过交易次数进行了多少次交易。结果应该是这样的:
汤姆7事务
杰克5交易
麦克2交易
如果客户没有交易他的名字不应该是诠释他的名单。
预先感谢您!
如何:
select client_name, count(*) as transactions
from TableA
group by client_name
order by count(*) DESC
假设没有交易的客户没有在表中(因为表中有一栏TRANSACTION_ID),他们将不会在结果中。
作品。谢谢! – lonelyloner 2010-02-01 20:59:30
这是正确的,虽然我会做count(1)而不是count(*)稍微好一点的性能,至少在Oracle上是有区别的。 – Jay 2010-02-01 21:03:25
Select
Client_Name,
count(*) as Transactions
from TableA
group by Client_Name
order by count(*) desc
这应该也有'HAVING COUNT(*)!= 0'。 – 2010-02-01 20:54:51
@Shtééf:谢谢,实际上它会计算任何现有的记录,假设如果没有交易就不会有记录。 – 2010-02-01 20:56:53
这也是可行的。非常感谢! – lonelyloner 2010-02-01 20:59:56
这样的事情?
Select client_name, count(*) As MyCount
From YourTableA
Group By client_name
Having MyCount > 0
Order by MyCount Desc
编辑:grr,又太慢了!至少我得到了别名...
数字,即汤姆7交易中的7,表A中的条目数,或者它是表中的字段? – 2010-02-01 20:53:23
你有几张桌子?你可以把它倒掉吗? – streetparade 2010-02-01 20:54:13