2013-04-12 82 views
0

我有一个佣金表MySQL查询:如何计算分组列,但在当前组中返回编号(以逗号分隔)

ID Agent Comm. 
1 Agent1 $30 
2 Agent1 $40 
3 Agent2 $40 
4 Agent1 $30 
5 Agent2 $40 

,所以我需要数从同一代理和相同数量的分组付款,但检索这些ID参与(逗号分隔)

例如

Agent Comm. Count Ids 
Agent1 $30 2  1,4 
Agent1 $40 1  2 
Agent2 $40 2  3,5 

我能做到这一点的只有一个查询?

现在我的查询,而无需在IDS列

select count(id) as Count, agent,comm from commissions 
group by agent,comm order by agent asc ,comm asc 

回答

1

当然可以。

MySQL有一个名为GROUP_CONCAT()的内置函数,它连接行而不是列。

SELECT Agent, Comm, 
     COUNT(*) TotalCount, 
     GROUP_CONCAT(ID) IDs 
FROM Commissions 
GROUP BY Agent, Comm 
+0

哇,谢谢,我不知道这个funcion :)谢谢 – PartySoft

+0

欢迎您':D' –