我正在为一些朋友开发一个Android应用程序以记录个人信息。 我有一个带有一个表“ Records”的模拟数据库。它具有三个主要列,分别是: _date,小时和分钟。
我已经测试了该查询,并且可以在MySQL Mock数据库上完美运行。
WITH
temp_dates AS (SELECT *, regexp_substr(_date, '\\.[0-9]*-[0-9]+') AS _dates FROM Records WHERE _date BETWEEN '2018-06-10' AND '2019-06-30')
SELECT
_dates,
SUM(hours) AS Hours,
SUM(mins) AS Mins
FROM
temp_dates
WHERE
temp_dates._dates LIKE regexp_substr(temp_dates._dates, '\\.[0-9]*-[0-9]+')
GROUP BY temp_dates._dates ORDER BY _dates ASC;
我需要实现这一部分:
regexp_substr(_date, '\\.[0-9]*-[0-9]+') AS _dates
在RoomDatabase @Query中。
我的数据库扩展了不支持regexp_substr()函数的RoomDatabase。
答案 0 :(得分:0)
我已经解决了使用substr(x,y,z)函数和一些改进之处:
WITH temp_dates AS (SELECT *, substr(_date, 1, 7) AS _dates FROM Records WHERE _date BETWEEN '2018-06-10' AND '2019-06-30') SELECT _dates, SUM(hours) AS Hours, SUM(mins) AS Mins FROM temp_dates GROUP BY temp_dates._dates ORDER BY _dates ASC;