Based on your sample, I believe you only need a GROUP BY ID with an HAVING clause on MIN([interestingData]) > 300.

**Query:**

    SELECT ID
        , interestingData = MIN([interestingData])
        , timestamp = MIN([timestamp])
        , count = COUNT([ID])
    FROM Table1
    GROUP BY ID
    HAVING MIN([interestingData]) > 300;

[SQL Fiddle][1] with sample data and query.

**Output:**

ID	interestingData	timestamp			count
1	350				2016-01-23 17:01:00	3


  [1]: http://sqlfiddle.com/#!3/245d0/2/0