2012-04-30 6 views
60

私は、mysql dbに2つのカラム、グループとサブグループを持つテーブルを持っています。下記参照。2つのフィールドでグループを使用し、SQLで数える

group, subGroup 
grp-A, sub-A 
grp-A, sub-A 
grp-A, sub-B  
grp-B, sub-A 
grp-B, sub-B 
grp-B, sub-B 

一意のカップルグループ/サブグループごとにレコード数を取得しようとしています。

これは私が期待するものである:

group, subGroup, count 
grp-A, sub-A, 2 
grp-A, sub-B, 1 
grp-B, sub-A, 1 
grp-B, sub-B, 2 

は、いくつかの記事を読んだ後、私は)(カウント、でグループを使用して、いくつかのSQLクエリを試してみましたが、私は期待どおりの結果を得るために管理していません。これをどうすれば解決できますか?

答えて

107

は、私はあなたが探していると思う:SELECT a, b, COUNT(a) FROM tbl GROUP BY a, b

+1

Hello Corbinbどうもありがとうございました。それは働いている。私はあなたが示唆していることをしましたが、aによってグループを作り出しました、b私はグループaとbで行いました。ありがとうございました – Marc

+3

'aとb'はMySQLのステートメントのようです(構文エラーか、0または1の戻り値をグループ化するかは実際はわかりませんが、varcharフィールドの場合は特に構文エラーと思われます) 。複数の列をグループ化するには、カンマを使用します。 – Corbin

+1

ありがとう!私の問題は、私の質問にフレーズを付けることができず、最終的にグーグルがグーグルでグーグルで単純かつドットの解決策をとったのです。 –

6
SELECT group,subGroup,COUNT(*) FROM tablename GROUP BY group,subgroup 
+0

カウントの代わりに、私はレコードの詳細をすべて必要としました。たとえば、grpAにはsubAとsubBという2つのサブグループがあるので、それぞれのサブグループのレコード全体を取得する必要があります。誰でも助けてくれますか? @ user1127214 –

5

あなたはグループの列、グループおよびサブグループの両方、その後、集約関数COUNT()を使用する必要があります。

SELECT 
    group, subgroup, COUNT(*) 
FROM 
    groups 
GROUP BY 
    group, subgroup 
+0

後半、この回答は本当に私を救った! –

+1

私は誤植グループと思われます!= groupName – csharpwinphonexaml

+0

カウントの代わりに、私はレコードの詳細をすべて必要としました。たとえば、grpAにはsubAとsubBという2つのサブグループがあるので、それぞれのサブグループのレコード全体を取得する必要があります。誰でも助けてくれますか? @farzane –

関連する問題