2016-03-28 108 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;