4
У меня есть следующий SQL:Как заполнить отсутствующие месяцы?
SELECT STRFTIME('%m', date) ord,
CASE STRFTIME('%m', date) WHEN '01' THEN 'January'
WHEN '02' THEN 'Febuary'
WHEN '03' THEN 'March'
WHEN '04' THEN 'April'
WHEN '05' THEN 'May'
WHEN '06' THEN 'June'
WHEN '07' THEN 'July'
WHEN '08' THEN 'August'
WHEN '09' THEN 'September'
WHEN '10' THEN 'October'
WHEN '11' THEN 'November'
WHEN '12' THEN 'December'
ELSE '' END AS month,
count(*) AS count
FROM events
WHERE type='Birth' AND
date <> ''
GROUP BY month,ord
ORDER BY ord
Это дает мне результаты, аналогичные:
ord month count
01 January 1
02 Febuary 1
03 March 3
05 May 4
07 July 2
08 August 2
09 September 2
11 November 4
Но, как вы можете видеть, что есть пробелы. Есть ли способ заполнить недостающие месяцы цифрой 0?
Попробуйте использовать это в качестве примера: http://stackoverflow.com/a/17916567/342740 – Prix
Это как похожи проблема решена в TSQL: http://codecorner.galanter.net/2011/08/29/tsql-filling-missing-date-range/ Не уверен в возможностях SQLite, но я думаю, что подобная логика может быть реализована. –