Logic rules representation and storage in DB column
I'll write this as an answer, even though it's just a few ideas. Breaking down the logical rules in a relational form is probably a waste of time, I would simply store the rules using XML or JSON. A parser friendly format like: 

{ OR 
    { AND 
          { GE1 has level &gt; 1 }
          { GE2 has level &gt; 1 }
    }
    { GE3 has level &gt; 2 }
}   


is maybe beneficial. Note that this is just an example

This format can easily be transformed into SQL like:

WHERE ((ge=1 AND level&gt;1) AND (ge=2 AND level=2))
   OR  (ge=3 AND level&gt;2)


The ge attribute can be constructed as:

WITH T (uid, level, epoch, ge) AS (
    SELECT uid, level, epoch
         , row_number() over (partition by epoch
                              order by uid) as ge
    FROM data.time_series
)


All and all you would end up with a query like:

WITH T (uid, level, epoch, ge) AS (
    SELECT uid, level, epoch
         , row_number() over (partition by epoch
                              order by uid) as ge
    FROM data.time_series
)
SELECT uid, level, epoch
FROM T
WHERE ((ge=1 AND level&gt;1) AND (ge=2 AND level=2))
   OR  (ge=3 AND level&gt;2)


The idea is hence to read all the rules into memory, when a rule is about to be evaluated it is transformed into SQL, and the query is executed against the time_series table.