计算出现或子查询混乱

时间:2012-03-21 13:08:54

标签: sqlite select

我正在尝试改进我的程序中的例程,我正在计算同一日期的出现次数。 所以也许是一个例子:

Time         Other_stuff Entry
1332334357   .....
1332334367   .....
1332334386   .....

到现在为止我已经使用过如下声明:

 SELECT date(time, 'unixepoch') FROM reviewHistory 
        WHERE lastInterval <= 21 AND nextInterval > 21

现在我基本上想要生成同一日期的条目直方图

2012-03-21 20
2012-03-20 13
2012-03-19 50

等等。但是我没有看到一个简单的方法,所以我想我只是做一个SELECT DISTINCT并存储这些值,然后用条件查询每个不同的条目并检查行计数。它节省了我的处理时间和I / O访问时间,但是我无法找到完成此操作的语句。我觉得这样的东西会起作用,但事实并非如此。例如:

SELECT time FROM reviewHistory WHERE
(SELECT date(time, 'unixepoch') FROM reviewHistory
        WHERE lastInterval <= 21 AND nextInterval > 21) = "2012-03-21"

它没有错误,但它也没有返回任何内容,我非常确定这是我应该能够在一些SQLite语句中完成的,而不必管理应用程序端。

更新:大声笑我刚发布后才发现它。虽然我仍然想要相信有更优雅的方法来完成SQL中的计数问题。

SELECT time FROM 
       (SELECT date(time, 'unixepoch') AS time 
       FROM reviewHistory WHERE lastInterval <= 21 AND nextInterval > 21)
  WHERE time = "2012-03-21"

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题,但要获得所有日期和计数,一个查询就足够了:

SELECT date(time, 'unixepoch'), COUNT(*)
FROM reviewHistory 
WHERE lastInterval <= 21 AND nextInterval > 21
GROUP BY date(time, 'unixepoch')