首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解析mysql跟踪数据库中的数据?

如何解析mysql跟踪数据库中的数据?
EN

Stack Overflow用户
提问于 2014-03-26 16:29:56
回答 1查看 57关注 0票数 0

我有一个工作事件跟踪器,它可以在mysql表中写入每个事件。

表格

代码语言:javascript
复制
id      date                userid      event
5100    2014-03-25 14:18:55 user333     AI  
5101    2014-03-25 14:19:02 user333     Click
5102    2014-03-25 14:19:02 user333     Click
...

到目前为止效果很好。但是现在,我想用node.js编写一个小的报告工具

我尝试使用这个SQL查询获取值:

从数据库中选择DATE_FORMAT(日期,"%Y%m%d")作为日期、事件、计数(*),其中date>=“+ daystartdate +‘和date<=”“+ dayenddate +'”组按年(日期)、月份(日期)、日期(日期)、事件

给我这个:

代码语言:javascript
复制
+----------+----------+-------+
| date     | event    | count |
+----------+----------+-------+
| 20140320 | AI       |     6 |
| 20140320 | Click    |     2 |
| 20140320 | swipe    |     2 |
| 20140321 | Click    |     6 |
| 20140321 | error    |     5 |
| 20140321 | swipe    |     2 |
| 20140321 | touch    |     3 |
| 20140322 | AI       |     3 |
| 20140322 | Click    |     3 |
| 20140322 | error    |     1 |
| 20140322 | mapsload |     3 |
| 20140322 | touch    |     1 |
| 20140323 | AI       |     2 |
| 20140323 | Click    |     2 |
| 20140323 | touch    |     5 |
| 20140324 | AI       |     3 |
| 20140324 | Click    |     1 |
| 20140325 | AI       |    25 |
| 20140325 | Click    |    48 |
| 20140325 | error    |    16 |
| 20140325 | mapsload |     7 |
| 20140325 | swipe    |    15 |
| 20140325 | touch    |    32 |
+----------+----------+-------+

但我需要这份表格中的数据:

代码语言:javascript
复制
+----------+----------+-------+-----
| date     | Click    | AI    | ....
+----------+----------+-------+-----
| 20140320 | 0        |     6 |
| 20140321 | 2        |     2 |
| 20140321 | 2        |     5 |

是否可以使用SQL查询,或者我是否需要循环使用javascript代码中的结果。我尝试了许多可能的解决方案,但没有成功。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-26 16:32:06

这是一个非常常见的问题,关键词搜索是“转置”和“枢轴”。为了省去麻烦,这是MySQL无法做到的事情。不过,Server ( MS产品)可以做到这一点。

您将需要遍历输出并自己构建结果集。

代码语言:javascript
复制
var results = []
data.forEach(function(row, rowidx) {
  results[row.date] = results[row.date] || {};
  results[row.date][row.event] = results[row.date][row.event] || 0;
  results[row.date][row.event] += row.count;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22667361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档