我已经在过去的答案中搜索了近两天,但没有找到解决办法。我有一个表格,其中包含列'项目',列'国家/地区'和一列时间表'。我想计算按国家分组的项目数量,这些项目确实在2017年之前开始。数据看起来像
ProjectID CountryID Time
5 3 Enero/2011 - Diciembre/2020
6 3 June 2017 - December 2020
7 3 June 2017 - December 2030
8 5 NULL
9 11 July 2017 - December 2020
10 11 7/2017 - 12/2020
11 5 2017 June - 2020 January
问题是时间的格式,但由于它是一个大型数据集,我无法手动更改格式。我尽力做像
这样的事情SELECT *, COUNT (*)
WHERE (Time LIKE '%XX% - %' AND XX < 2018);
但我找不到在查询中包含参数XX的正确方法。如果不手动重写所有数据,有没有办法完成这项工作?
非常感谢!
答案 0 :(得分:1)
谢谢Tripehound - 子串确实有帮助!对于开始年份
SELECT ID, substr(TimeFrame, instr((TimeFrame),'20'),4) AS ProjectStart
, Count(*) AS NumberProjects
FROM Timeframe
WHERE ProjectStart>"2017";
确实做到了;结束的一年是
SELECT substr(TimeFrame, instr(TimeFrame,'-')-1+instr(substr(TimeFrame, instr(TimeFrame,'-')), '20'), 4) AS ProjectEnd,
Count(*) AS ProjectsNumber
FROM Timeframe
WHERE ProjectEnd<"2030";
完成!