mySQL查询列中的总计数(日期)

时间:2017-10-02 09:26:07

标签: mysql pivot-table aggregate-functions

我的数据格式如下:

id,count,date

我想以下列格式获取数据:

id|2017-09-01|2017-09-02|2017-09-03|2017-09-04|2017-09-05
--|----------|----------|----------|----------|----------
 1|     1    |     1    |     0    |     3    |     9
 2|     0    |     3    |     0    |     2    |    29
 3|     5    |     7    |     0    |     3    |     0
 4|     4    |     1    |     0    |     6    |     5

1 个答案:

答案 0 :(得分:0)

根据这一事实,这是一个基本伎俩。在MySQL的sql方言中,像datestamp = '2017-09-02'这样的表达式的值为1或0。

你怎么能申请?像这样:

SELECT id, 
       SUM(count * (datestamp = '2017-09-02')) "2017-09-02",
       SUM(count * (datestamp = '2017-09-03')) "2017-09-03"
  FROM tbl
 GROUP BY id

现在,您将要询问如何使列标题取决于您的数据内容。 那种类型的旋转是MySQL中臭名昭着的痛苦。做什么@strawberry建议。