You can list items with a specific key using the liststreamkeyitems command, but this doesn't allow a numerical range or set of options to be passed. If you want more advanced querying, you may want to consider using MultiChain Enterprise (whose free demo runs for the first 3 months of a chain), which can update an external database in realtime based on the content of a stream. The open source MultiChain Feed Adapter comes with built-in support for PostgreSQL, MySQL/MariaDB and MongoDB.
As for sub-streams, there isn't a mechanism for that. But you can use keys to tag items into something which effectively works as a sub-stream, containing all the items with that key.