0

以下の表をご覧ください。table1最初のものはもう1つだとしましょうtable2。これについてどうしたらよいか本当にわかりません。mysqlクエリを使用して以下の表のようにカウントする方法を誰か助けてもらえますか?

タイプ「a」の「赤」の数を数えます

タイプの赤の数を数えます

ありがとう

4

4 に答える 4

4

他のテーブルには存在しない可能性があるため、LEFT JOINむしろ使用する必要があります。INNER JOINcolor

SELECT  a.id,
        a.colour,
        SUM(type = 'a') TypeA,
        SUM(type = 'b') TypeB
FROM    tableColors a
        LEFT JOIN tableName b
            ON a.ncolour = b.colour
GROUP   BY a.id, a.colour

SUM(type = 'a')ブール演算の結果の合計値を計算する mysql 固有の構文です。より RDBMS フレンドリーにしたい場合は、CASE

SELECT  a.id,
        a.colour,
        SUM(CASE WHEN type = 'a' THEN 1 ELSE 0 END) TypeA,
        SUM(CASE WHEN type = 'b' THEN 1 ELSE 0 END) TypeB
FROM    tableColors a
        LEFT JOIN tableName b
            ON a.ncolour = b.colour
GROUP   BY a.id, a.colour
于 2013-09-23T15:01:57.710 に答える
1
SELECT a.colour ncolor,
  SUM(a.type = 'a') amount_a,
  SUM(a.type = 'b') amount_b
  FROM table_name a
  LEFT JOIN table_name b
     ON a.colour = b.colour
  GROUP BY a.id, a.colour
于 2013-09-23T15:04:24.510 に答える
0

あなたの画面から、あなたが探しているクエリは単純なSELECT [...], COUNT(a), COUNT(b) FROM table1 GROUP BY colour.

より正確に:

SELECT colour AS ncolour
  , COUNT(a) as amount_a
  , COUNT(b) as amount_b
FROM table1
GROUP BY colour ;

Mysql カウント行を参照してください

PS 要求されたのは、table1 から table2 を取得するための MySQL クエリであると想定しました。

于 2013-09-23T15:07:42.910 に答える
0

select count(red) from table1; のようなことができます。構文についてはよくわかりません。ここでチェックインできます

http://dev.mysql.com/doc/refman/5.0/es/counting-rows.html

http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/

于 2013-09-23T15:03:35.313 に答える