2016-03-28 21 views
1

のクエリによってグループIは、各顧客に給与の合計金額をお知りになりたい場合は、次のようにクエリのGROUP BYは次のようになります。MySQLの特定の条件

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

しかし、私はの合計をしたくない場合は給与は、すべての給与を名前でグループ化して照会するか、またはアプローチする必要がありますか?

+1

()' –

+1

なぜ 'によってグループ化された' 'によって配置' とは対照的に? – Strawberry

+0

@Paul group_concatは私が探していたものですが、JPAのquery group_concatは動作しません。 group_concatのJPAクエリーで何ができますか? –

答えて

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

もう1つのオプション:SQLではなくアプリケーション・サイト上のグループ。 –

+0

これを行う方法のもう1つの選択肢として、彼が望むことができるすべてのオプションについて話しました。 @PaulSpiegel – sagi

+0

多分、OPは彼のアプリケーション言語で可能なことを知りません。たとえば、PHP PDOでは、 'fetchAll(PDO :: FETCH_COLUMN | PDO :: FETCH_GROUP)'のようなものを使用し、配列であるため結果をより柔軟に保つことができます。一方で、結果の文字列を解析するのも簡単です。だからすべてうまくいきます:-) –

0

あなたが各顧客のために給与の名前とバリエーションを取得したい場合は(名前と給与でグループ化されました)。これを試すことができます。多分 `GROUP_CONCAT()` `の代わりにSUMの

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