【问题标题】:how to put particular date in where clause in alasql如何将特定日期放在 alasql 的 where 子句中
【发布时间】:2016-03-15 10:27:52
【问题描述】:

查看我正在查询的以下数据。

result = alasql("SELECT HourOfDay, Count(HourOfDay) TotalCount from ? where ReportedDate = DATE('1/20/2012') group by HourOfDay ", [data])
<table style="width:100%">
  <tr>
  <th>ReportedDate</th>	<th>HourOfDay</th>
  </tr>
  <tr>   
    <td>2012-01-20 09:30:00.000</td>
    <td>9</td>   
  </tr>
  <tr>
    <td>2012-01-21 09:30:00.000</td>
    <td>11</td>   
  </tr>
  <tr>
    <td>2012-01-11 09:30:00.000</td>
    <td>9</td>   
  </tr><tr>
    <td>2012-01-20 09:30:00.000</td>
    <td>5</td>   
  </tr><tr>
    <td>2012-01-20 09:30:00.000</td>
    <td>9</td>   
  </tr><tr>
    <td>2012-01-13 09:30:00.000</td>    
    <td>7</td>   
  </tr><tr>
    <td>2012-01-20 09:30:00.000</td>    
    <td>9</td>   
  </tr><tr>
    <td>2012-01-20 09:30:00.000</td>   
    <td>10</td>   
  </tr>
</table>

我需要 HourOfDay 的总计数,其中日期为“1/20/2012”,我正在使用给定的查询查询此数据,但我没有得到任何结果,所以请帮帮我,我是 alasql 的新手。

这是我的数组

data=[
{'ReportedDate': '2012-01-20 09:30:00.000','HourOfDay':'9'},
{'ReportedDate': '2012-01-21 09:30:00.000','HourOfDay':'10'},
{'ReportedDate': '2012-01-11 09:30:00.000','HourOfDay':'1'},
{'ReportedDate': '2012-01-20 09:30:00.000','HourOfDay':'4'},
{'ReportedDate': '2012-01-20 09:30:00.000','HourOfDay':'5'},
{'ReportedDate': '2012-01-20 09:30:00.000','HourOfDay':'6'},
{'ReportedDate': '2012-01-20 09:30:00.000','HourOfDay':'8'},
{'ReportedDate': '2012-01-13 09:30:00.000','HourOfDay':'12'}];

【问题讨论】:

  • 如果您发布您遇到的错误,它会很有帮助。请注意,您在[data 之后缺少]。请结帐github.com/agershun/alasql/wiki/Html 看看这是否能让您前进。
  • @mathiasrw 是的,我知道,在编写 Q 时我犯了那个错误,但在我的代码中它是正确的。当我对 data 进行此查询时,它只给我 1 个结果,例如 HourOfDay = undifined & TotalCount = 0。所以我没有得到正确的输出
  • @mathiasrw 告诉我这个查询是否正确 alasql("SELECT HourOfDay, Count(HourOfDay) TotalCount from ? where ReportedDate = DATE('1/20/2012') group by HourOfDay ", [data]) 我不想比较日期,我想要给定特定日期的数据。如果我删除 where 子句,它会给我所有 ReportedDates HourOfDay 计数。但我只想要一个 dateTotalCount
  • 如果您可以发布您正在处理的 javascript 数组而不是 html,那就太棒了。
  • @mathiasrw HTML sn-p 是我正在查询的数组

标签: javascript alasql


【解决方案1】:

我建议使用自定义函数。可能是这样的:

alasql.fn.theDate(s){
    return s.split(' ').shift();
} 

hours = alasql("VALUE OF SELECT SUM(HourOfDay) FROM ? WHERE theDate(ReportedDate) = '2012-01-20'", [data])

在某些时候,您可能会发现一次获得每天的总和很有趣:

totalHoursPerDay = alasql("SELECT theDate(ReportedDate) as date, SUM(HourOfDay) as hours FROM ? GROUP BY theDate(ReportedDate)", [data])

【讨论】:

  • 非常感谢......你救了我......它现在可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多