【发布时间】:2019-09-24 17:51:17
【问题描述】:
基本上我想旋转动态数组,例如我从 MySQL 表中得到的这个数组:
[ { ruleAlias: 'DEMAND', date: '2019-03-22', count: 10 },
{ ruleAlias: 'VOUCHER', date: '2019-03-25', count: 20 },
{ ruleAlias: 'DEMAND', date: '2019-03-25', count: 10 },
{ ruleAlias: 'BILL', date: '2019-03-25', count: 2 },
{ ruleAlias: 'BILL', date: '2019-05-06', count: 1 } ]
我希望这个数组变成:
[ ['RULE', 'DEMAND', 'VOUCHER', 'BILL'],
['2019-03-22', 10, 0, 0],
['2019-03-25', 10, 20, 2],
['2019-05-06', 0, 0, 1]
]
这是我使用的 MySQL 查询:
SELECT ruleAlias, date, count
FROM (
SELECT ruleAlias, DATE_FORMAT(createDate, '%Y-%m-%d') AS date, COUNT(DATE_FORMAT(createDate, '%Y-%m-%d')) AS count FROM histPoint WHERE ruleAlias IN (SELECT alias FROM mstRule WHERE clientId = 5) AND YEAR(createDate) = YEAR(CURDATE()) GROUP BY date, ruleAlias
) AS t
我得到的数据是动态的,例如上面的数据是3条规则,但是表中的数据可以得到3条以上的规则,如何在javascript中将这种数组pivot到预期的输出或直接在sql中pivot?
【问题讨论】:
标签: javascript mysql sql node.js pivot