2012-03-21 2 views
0

Я пытаюсь улучшить рутину в своей программе, где я подсчитываю количество вхождений одной и той же даты. Так может быть, пример:Сводка или подзапрос беспорядок

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 и сохраню эти значения, а затем запрошу каждую отдельную запись с условными выражениями и проверит количество строк. Это избавит меня от времени обработки и времени доступа ввода-вывода, однако я не смог найти утверждение, которое это выполнило. Я думал, что-то вроде этого будет работать, но это не так. Пример:

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

Это не ошибка, но она также не возвращает ничего, и я чувствую себя довольно уверен, что это то, что я должен быть в состоянии выполнить в несколько SQLite заявления и не должен управлять стороной приложения ,

UPDATE: Lol, это только что пришло ко мне после того, как я опубликовал его. Хотя я все еще хочу верить, что есть более грациозный способ решить проблему подсчета в SQL.

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

ответ

1

Я не уверен, если я понимаю ваш вопрос, но, чтобы получить все даты и счетчик, один запрос должен быть достаточно:

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

О, это красиво. Именно это я и надеялся поблагодарить. Наверное, я неправильно понял, как COUNT (*) использовался, когда я читал на нем. – Jeremy