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

mySQL查询列中的合计计数(日期),mysql,pivot-table,aggregate-functions,Mysql,Pivot Table,Aggregate Functions,我有以下格式的数据: 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 |

我有以下格式的数据:

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 身份证、计数、日期

我希望获得以下格式的数据:

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
这有一个基本的技巧,取决于这个事实。在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中,这种旋转是一个臭名昭著的难题。“做什么”草莓建议。

认真考虑应用程序代码中数据显示支点和丢失数据的问题。除此之外,这里没有足够的问题值得进一步关注。谢谢你的回答。初学者不容易,是的。我们都去过那里。