2016-03-28 80 views
1

如果我想了解每个客户的工资总额,然后GROUP BY查询将如下所示:MySQL的集团通过查询特定条件

SELECT NAME, SUM(SALARY) FROM CUSTOMERS GROUP BY NAME; 

但是,如果我不想总和薪水,只需要看所有按名称分组的薪金,那么什么是查询或方法?

+1

也许'GROUP_CONCAT()'而不是'SUM()' –

+1

为什么按'分组'而不是'按排列'? – Strawberry

+0

@Paul group_concat是我正在寻找,但在JPA查询group_concat不起作用。任何想法我可以做JPA查询group_concat? –

回答

0

尝试使用GROUP BY clause获得所需的结果。

SELECT NAME,SALARY FROM CUSTOMERS GROUP BY NAME; 
1

这取决于你想显示其工资..

选择1 - >最大:

SELECT NAME, max(SALARY) FROM CUSTOMERS GROUP BY NAME; 

选择2 - >最低:

SELECT NAME, min(SALARY) FROM CUSTOMERS GROUP BY NAME; 

选项3 - >清单:

SELECT NAME, group_concat(SALARY separator ',') FROM CUSTOMERS GROUP BY NAME; 

而最后一个选项 - >无所谓:

SELECT NAME,SALARY FROM CUSTOMERS GROUP BY NAME; 
+1

另一个选项:在应用程序站点上组而不是SQL。 –

+0

如何做到这一点的另一个选择,我谈到了他可能想要的所有选项。 @PaulSpiegel – sagi

+0

也许OP只是不知道他的应用程序语言中有什么可能。例如,使用PHP PDO,你可以使用类似'fetchAll(PDO :: FETCH_COLUMN | PDO :: FETCH_GROUP)'的类型,并且保持结果更加灵活,因为它是一个数组。另一方面,解析结果字符串也很简单 - 所以一切都很好:-) –

0

如果要检索的姓名和薪水每个客户的变化(按姓名和薪水分组)。你可以试试这个。

SELECT name, salary FROM customers GROUP BY name, salary;