条件求和(Alasql)

时间:2015-03-21 09:08:23

标签: sql javascript-objects data-manipulation querying alasql

我最近发现了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创建一个新标签,但我认为它在不久的将来会对某些人有用 - 有人可以创建吗?)

1 个答案:

答案 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 
相关问题