I have a table with columns like 

```
insertTimeStamp, port, data
1              , 20  , 'aaa'
2              , 20  , 'aba'
3              , 20  , '3aa'
4              , 20  , 'aab'
2              , 21  , 'aza'
5              , 21  , 'aha'
8              , 21  , 'aaa'
15             , 22  , '2aa'

```

Now I need *N* Rows (Say 4) from that table, ordered asc by `insertTimeStamp`.
But if possible, I want to get them from different `port`s.

So the result should be:

```
1              , 20  , 'aaa'
2              , 20  , 'aba'
2              , 21  , 'aza'
15             , 22  , '2aa'

```

If there are not enough different values in `port` I would like select the remaining ones with the lowest `insertTimeStamp`.