我最近发现了Alasql,它已经为我节省了大量的数据操作工作。
现在我正在尝试为每个客户汇总年收入。我试过分区没有成功,我尝试了这种条件方法,但它只返回2013年或2014年的数据,而不是同时返回:
var custTable = alasql('SELECT CUSTOMER as customer,
SUM(REVENUE::NUMBER) AS revenueTotal, SUM(CASE WHEN YEAR = "2013" THEN
REVENUE::NUMBER END) AS revenue2013, SUM(CASE WHEN YEAR = "2014" THEN
REVENUE::NUMBER END) AS revenue2014 FROM ? GROUP BY CUSTOMER',
[revenueTestData]);
基本上我正试图摆脱这个:
{ “YEAR”: “2013”, “月”: “1”, “客户”:“一些 客户”, “收入”: “7533.36”}, { “YEAR”: “2014”, “月”: “1”, “客户”:“一些 顾客”, “收入”: “10000”}
对此:
{“CUSTOMER”:“Some Customer”,“revenueTotal”:“17533.36”,“revenue2013”:7533.36“,”revenue2014“:”10000“}
为什么查询仅返回2013或2014,但不是两者都返回?有条件地求和的正确方法是什么?
(顺便说一下,我无法为ALASQL创建一个新标签,但我认为它在不久的将来会对某些人有用 - 有人可以创建吗?)
答案 0 :(得分:4)
试试这个:
SUM(CASE WHEN YEAR = "2013" THEN REVENUE::NUMBER ELSE 0 END) AS revenue2013,
SUM(CASE WHEN YEAR = "2014" THEN REVENUE::NUMBER ELSE 0 END) AS revenue2014