2017-02-21 7 views
0

私は2つのユニークなリンクテーブルIDを持つテーブルを持っています。 GROUP BYで必要な結果が得られますが、カウントすると各グループの番号しか取得できません。mysqlの結果はGROUP BYで

私は:

SELECT COUNT(id) FROM my_table GROUP BY first_linked_table_id, second_linked_table_id 

私は結果を1、2、3、1として取得するが、私は結果として4をしたいです。

私はDISTINCTみましたが、私はあなたが行をカウントしたい場合は、私はあなたがサブクエリを必要とするつもりだと思う1列

+0

いいえ、 'DISTINCT'は、任意の数の列で動作しますが、DISTINCT'は通常、GROUP BY'によって実装される 'としてそれはあまり変化しません。 「フードの下で。いくつかのサンプルデータをここに含めてください。 –

+0

@TimBiegeleisen DISTINCTは、特定の列の一意の値のみを返します。first_linked_table_idとsecond_linked_table_idの組み合わせが一意であるすべての行が –

+0

です。間違っています。 'DISTINCT field1、field2'を使うことができますが、いずれの場合でもこれはあなたの質問とは無関係です。 –

答えて

1

はこれを試してみてください:

SELECT COUNT(*) 
FROM 
(
    SELECT COUNT(id) 
    FROM my_table 
    GROUP BY first_linked_table_id, 
      second_linked_table_id 
) t 
+0

エラーを返します。すべての派生テーブルには独自のエイリアスが必要です。 –

+0

@PaulRoefsそのエラーの説明は何ですか? –

+0

申し訳ありませんが、私はそれが準備ができていないときに私のコメントを送信する入力を使用してみました。私はそれを編集 –

1

で動作すると思います。このような何か:

SELECT COUNT(*) FROM (
    SELECT COUNT(id) FROM my_table GROUP BY first_linked_table_id, second_linked_table_id 
);