27,580
社区成员
发帖
与我相关
我的任务
分享
SELECT "PSL"."CmnGUID","PSL"."Date","PSL"."LifeCount" FROM "PrinterStatusLog" "PSL"
WHERE "CmnGUID" in ('FFF3D9','FFF3D0')
AND "PSL"."LifeCount" <> -1 ORDER BY "PSL"."Date" DESC
;with A AS(
select *,
row_number()over(partition by CmnGUID order by [date] DESC) rn
from PrinterStatusLog
WHERE lIFECOUNT!=-1
)SELECT * FROM a WHERE RN=1
SELECT "PSL"."CmnGUID","PSL"."Date","PSL"."LifeCount" FROM "PrinterStatusLog" "PSL"
inner join (select "CmnGUID", MAX("Date") AS "Date" from "PrinterStatusLog" where "CmnGUID"
in ('FFF3D9','FFF3D0')
Group by "CmnGUID") "PSL2" on "PSL2"."CmnGUID" = "PSL"."CmnGUID" and "PSL2"."Date" = "PSL"."Date"
AND "PSL"."LifeCount" <> -1 ORDER BY "PSL"."Date" DESC
不过数据比较多的候效率不是很好,40万行数据中指定4000个CmnGUID检索时花了大概8秒左右(PostgreSQL)。
感觉这个速度还是不能接受~