【发布时间】:2019-07-23 17:14:40
【问题描述】:
假设我有一张这样的桌子
+----+----------+------+
| id | name | type |
+----+----------+------+
| 1 | apple | F |
| 1 | pear | F |
| 1 | cucumber | V |
| 2 | orange | F |
| 2 | grass | NULL |
| 2 | broccoli | V |
| 3 | flower | NULL |
| 3 | tomato | NULL |
+----+----------+------+
我想最终得到一个表格,计算每种类型(包括 NULL 类型)和每个 id 的元素数量,如下所示:
+----+-----------------+--------------+--------------+
| id | type_NULL_count | type_F_count | type_V_count |
+----+-----------------+--------------+--------------+
| 1 | 0 | 2 | 1 |
| 2 | 1 | 1 | 1 |
| 3 | 2 | 0 | 0 |
+----+-----------------+--------------+--------------+
这很容易做到,但是有没有一种方法(我可以编写一个查询或其他东西)这样当我返回并编辑第一个表中的一个类型字段时,我最终会得到一个正确更新的计数表?
例如,假设我想添加一个新类型(类型X)并将flower 的type 字段从NULL 更改为X。有没有办法不用重写查询或添加更多语句就可以得到下表?
+----+-----------------+--------------+--------------+--------------+
| id | type_NULL_count | type_F_count | type_V_count | type_X_count |
+----+-----------------+--------------+--------------+--------------+
| 1 | 0 | 2 | 1 | 0 |
| 2 | 1 | 1 | 1 | 0 |
| 3 | 1 | 0 | 0 | 1 |
+----+-----------------+--------------+--------------+--------------+
我不确定这是否是最好的方法,所以我愿意接受建议
【问题讨论】:
-
您使用哪个版本的 mySQL?
-
考虑处理应用代码中数据显示的问题。
-
你想要的是一个“动态枢轴”。
标签: mysql sql database automation pivot-table