0

作为我在第一篇文章中寻求帮助将数据处理到 excel 数据透视表中的后续工作,我假设这只能通过使用联合的数据库命令来完成。因此,我提交了一个具有相同数据的新问题,但从 MySQL 的角度来看。

我有以下表格:

mysql> select * from ilike;
+-----------+------------+----------+
| likebread | likecheese | likemilk |
+-----------+------------+----------+
| girl      | boy        | girl     |
| boy       | girl       | boy      |
| boy       | boy        | boy      |
| boy       | boy        | girl     |
| boy       | boy        | boy      |
| boy       | girl       | boy      |
| girl      | boy        | girl     |
| boy       | girl       | girl     |
| boy       | boy        | girl     |
| girl      | boy        | boy      |
+-----------+------------+----------+
10 rows in set (0.00 sec)

我想对各个列中的数据进行计数和分组,以便最终结果是一个表格,显示每个列中男孩和女孩的计数,如下所示:

        +-----------+------------+----------+
        | likebread | likecheese | likemilk |
+-------+-------+------------+--------------+
| boys  | 7         | 7          | 5        |
| girls | 3         | 3          | 5        |
+-------+-----------+------------+----------+

任何帮助表示赞赏!

4

1 回答 1

1

这是一种方法:

select g.gender,
       sum(case when likebread=g.gender then 1 end) likebread,
       sum(case when likecheese=g.gender then 1 end) likecheese,
       sum(case when likemilk=g.gender then 1 end) likemilk
from (select 'girl' gender union select 'boy') g
cross join ilike
group by g.gender

结果

| 性别 | 喜欢面包 | 像奶酪 | 像牛奶 |
----------------------------------------------
| 男孩 | 7 | 7 | 5 |
| 女孩| 高分辨率照片| CLIPARTO 3 | 3 | 5 |

查看演示

于 2013-03-21T18:36:51.850 回答