0

別のテーブルを使用し、MySQLビューを生成しました。そのビューを使用して、以下をコーディングしました。

SELECT staffid,
   CASE Frequency
     WHEN 'Less' THEN COUNT(Frequency)
     ELSE '0'
  END AS LessCount,
  CASE Frequency
     WHEN 'Full' THEN COUNT(Frequency)
     ELSE '0'
  END AS FullCount,
  CASE Frequency
     WHEN 'More' THEN COUNT(Frequency)
     ELSE '0'
  END AS MoreCount
FROM effort_frequency
GROUP BY staffid, Frequency

上記のコードを使用して、以下の表を取得しました。

+-------+-----------+-----------+-----------+
| staff | lessCount | FullCount | MoreCount |
+-------+-----------+-----------+-----------+
|   10  |    2      |    0      |    0      |
|   10  |    0      |    1      |    0      |
|   10  |    0      |    0      |    3      |
|   11  |    1      |    0      |    0      |
|   11  |    0      |    3      |    0      |
+-------+-----------+-----------+-----------+

これを変換する必要があります。次のようになります。

+-------+-----------+-----------+-----------+
| staff | lessCount | FullCount | MoreCount |
+-------+-----------+-----------+-----------+
|   10  |    2      |    1      |    3      |
|   11  |    1      |    3      |    0      |
+-------+-----------+-----------+-----------+

MySQLでこれを行うにはどうすればよいですか?

4

1 に答える 1

2
SELECT   staffid               AS staff,
         SUM(Frequency='Less') AS lessCount,
         SUM(Frequency='Full') AS FullCount,
         SUM(Frequency='More') AS MoreCount
FROM     effort_frequency
GROUP BY staffid
于 2012-05-12T08:21:06.320 に答える