Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 统计发生的事件或子查询混乱_Sqlite_Select - Fatal编程技术网

Sqlite 统计发生的事件或子查询混乱

Sqlite 统计发生的事件或子查询混乱,sqlite,select,Sqlite,Select,我正在努力改进我的程序中的一个例行程序,即计算同一日期发生的次数。 举个例子: Time Other_stuff Entry 1332334357 ..... 1332334367 ..... 1332334386 ..... 到目前为止,我一直在使用这样一种说法: SELECT date(time, 'unixepoch') FROM reviewHistory WHERE lastInterval <= 21 AND nextInter

我正在努力改进我的程序中的一个例行程序,即计算同一日期发生的次数。 举个例子:

Time         Other_stuff Entry
1332334357   .....
1332334367   .....
1332334386   .....
到目前为止,我一直在使用这样一种说法:

 SELECT date(time, 'unixepoch') FROM reviewHistory 
        WHERE lastInterval <= 21 AND nextInterval > 21
等等。然而,我看不到一个简单的方法来实现这一点,所以我想我只需要选择一个DISTINCT并存储这些值,然后用条件查询每个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"

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

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

哦,太美了。这正是我所希望的谢谢你。我想我在阅读时误解了COUNT*的用法。
SELECT date(time, 'unixepoch'), COUNT(*)
FROM reviewHistory 
WHERE lastInterval <= 21 AND nextInterval > 21
GROUP BY date(time, 'unixepoch')