Hello! create view view_role as select role.id as rowid, role.uid, role.timestamp, role.user_id, role_fts.* from role, role_fts where role_fts.rowid=role.id group by uid having timestamp=max(timestamp);
sqlite> explain query plan select * from view_role where rowid=1000; 0|1|TABLE role_fts VIRTUAL TABLE INDEX 0: 1|0|TABLE role USING PRIMARY KEY sqlite> select * from view_role where rowid=1000; 1000|�ƈ]�4b�cg�|2455285.05859278|veter|Role 1000|role 1000 CPU Time: user 17.385087 sys 0.556035 sqlite> select count(*) from view_role; 1000000 CPU Time: user 18.933183 sys 0.744047 sqlite> explain select * from view_role where rowid=1000; 0|Trace|0|0|0||00| 1|OpenEphemeral|3|7|0|keyinfo(1,BINARY)|00| 2|Integer|0|9|0||00| 3|Integer|0|8|0||00| 4|Gosub|11|64|0||00| 5|Goto|0|73|0||00| 6|VOpen|2|0|0|vtab:90C3C30:B6B08200|00| 7|OpenRead|1|2|0|4|00| 8|Integer|0|14|0||00| 9|Integer|0|15|0||00| 10|VFilter|2|25|14||00| 11|Rowid|2|17|0||00| 12|MustBeInt|17|24|0||00| 13|NotExists|1|24|17||00| 14|Column|1|1|18||00| 15|Sequence|3|19|0||00| 16|Rowid|1|20|0||00| 17|Column|1|2|21||00| 18|RealAffinity|21|0|0||00| 19|Column|1|3|22||00| 20|VColumn|2|0|23||00| 21|VColumn|2|1|24||00| 22|MakeRecord|18|7|17||00| 23|IdxInsert|3|17|0||00| 24|VNext|2|11|0||00| 25|Close|2|0|0||00| 26|Close|1|0|0||00| 27|Sort|3|72|0||00| 28|Column|3|0|13||00| 29|Compare|12|13|1|keyinfo(1,BINARY)|00| 30|Jump|31|35|31||00| 31|Move|13|12|1||00| 32|Gosub|10|50|0||00| 33|IfPos|9|72|0||00| 34|Gosub|11|64|0||00| 35|Column|3|3|18||00| 36|CollSeq|0|0|0|collseq(BINARY)|00| 37|AggStep|0|18|7|max(1)|01| 38|Column|3|2|1||00| 39|Column|3|0|2||00| 40|Column|3|3|3||00| 41|Column|3|4|4||00| 42|Column|3|5|5||00| 43|Column|3|6|6||00| 44|Integer|1|8|0||00| 45|Next|3|28|0||00| 46|Gosub|10|50|0||00| 47|Goto|0|72|0||00| 48|Integer|1|9|0||00| 49|Return|10|0|0||00| 50|IfPos|8|52|0||00| 51|Return|10|0|0||00| 52|AggFinal|7|1|0|max(1)|00| 53|Integer|1000|17|0||00| 54|Ne|17|51|1||6c| 55|Ne|7|51|3|collseq(BINARY)|6d| 56|SCopy|1|25|0||00| 57|SCopy|2|26|0||00| 58|SCopy|3|27|0||00| 59|SCopy|4|28|0||00| 60|SCopy|5|29|0||00| 61|SCopy|6|30|0||00| 62|ResultRow|25|6|0||00| 63|Return|10|0|0||00| 64|Null|0|1|0||00| 65|Null|0|2|0||00| 66|Null|0|3|0||00| 67|Null|0|4|0||00| 68|Null|0|5|0||00| 69|Null|0|6|0||00| 70|Null|0|7|0||00| 71|Return|11|0|0||00| 72|Halt|0|0|0||00| 73|Transaction|0|0|0||00| 74|VerifyCookie|0|14|0||00| 75|TableLock|0|2|0|role|00| 76|Goto|0|6|0||00| Best regards, Alexey Pechnikov. http://pechnikov.tel/ _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users