MySQL在单个表上进行透视,每周计算记录

时间:2016-04-01 11:27:10

标签: mysql sql pivot

我有这个MySQL数据库表:

+----+------------+---------+
| id |   pdate    | product |
+----+------------+---------+
|  1 | 2015-10-12 | BOX     |
|  2 | 2015-10-12 | SHOE    |
|  3 | 2015-10-12 | PEN     |
|  4 | 2015-10-12 | BOX     |
|  5 | 2015-10-19 | BOX     |
|  6 | 2015-10-12 | SHOE    |
|  7 | 2015-10-19 | SHOE    |
|  8 | 2015-10-19 | PEN     |
|  9 | 2015-10-19 | WATCH   |
| 10 | 2015-10-26 | WATCH   |
| 11 | 2015-10-26 | SHOE    |
+----+------------+---------+

列产品是动态列,我事先不知道哪些产品在此列中。而pdate专栏也会随着时间的推移而增长,因此我事先并不知道周数。

我想获得以下输出:

+-----------------+-------+-------+
| product | WK 42 | WK 43 | WK 44 |
+-----------------+-------+-------+
|  BOX    |     2 |     1 |     0 |
|  SHOE   |     2 |     1 |     1 |
|  PEN    |     1 |     1 |     0 |
|  WATCH  |     0 |     1 |     1 |
+-----------------+-------+-------+

我想计算每个产品每周的记录数。

我知道我需要对MySQL Pivot表/查询做一些事情,但我现在完全陷入困境。如何解决这一挑战?

这不是一个重复的问题,因为另一个主题是在两个不同的表上,这是关于单个表上的数据透视查询。这是一种不同的情况。

0 个答案:

没有答案