title: Select everything except rows with maxvalue in certain column
body: <p>I have a table with data and I'm trying to select some values with lower value than maximum. I am using IBExpert, I need to do this in SQL because I am working on a Firebird database. My table looks like this:  </p>
  
  <pre><code>UID      TYP  ID_RODZICA  ID_DZIALKI  PRZED_PO  GRUPA  DTW               OSOW  DTU  OSOU
   17 170  K         5 765       3 551  0             1                                     
  163 759  N         5 765      53 084  0             1  29.03.2018 11:45    21             
  163 760  N         5 765      49 796  1             1  29.03.2018 11:45    21             
  163 761  N         5 765      49 426  1             1  29.03.2018 11:45    21             
  163 762  N         5 765      53 085  1             1  29.03.2018 11:45    21             
  163 763  N         5 765      53 086  1             1  29.03.2018 11:45    21             
  163 764  N         5 765      53 087  0             2  29.03.2018 11:45    21             
  163 765  N         5 765      53 088  0             2  29.03.2018 11:45    21             
  163 766  N         5 765       8 940  0             2  29.03.2018 11:45    21             
  163 767  N         5 765      41 931  0             2  29.03.2018 11:45    21             
  253 171  N         5 765      41 931  0             3  29.03.2018 21:14    21             
  253 172  N         5 765      53 088  0             3  29.03.2018 21:14    21             
  253 173  N         5 765       8 940  0             3  29.03.2018 21:14    21             
  253 174  N         5 765      49 796  0             3  29.03.2018 21:14    21             
  253 175  N         5 765      49 426  0             3  29.03.2018 21:14    21             
  253 176  N         5 765      53 085  0             3  29.03.2018 21:14    21             
  253 177  N         5 765      53 086  0             3  29.03.2018 21:14    21             
  253 178  N         5 765      67 386  0             3  29.03.2018 21:14    21             
  253 179  N         5 765      67 387  0             3  29.03.2018 21:14    21             
  253 180  N         5 765      67 388  0             3  29.03.2018 21:14    21               
  </code></pre>
  
  <p>What I want is to select only rows with GRUPA values lower than maximum, here max value is 3, but sometimes it might be 5, 7, 11 or whatever, so I can't specify the value.  </p>
  
  <p>It should look like this:  </p>
  
  <pre><code>UID      TYP  ID_RODZICA  ID_DZIALKI  PRZED_PO  GRUPA  DTW               OSOW  DTU  OSOU
   17 170  K         5 765       3 551  0             1                                     
  163 759  N         5 765      53 084  0             1  29.03.2018 11:45    21             
  163 760  N         5 765      49 796  1             1  29.03.2018 11:45    21             
  163 761  N         5 765      49 426  1             1  29.03.2018 11:45    21             
  163 762  N         5 765      53 085  1             1  29.03.2018 11:45    21             
  163 763  N         5 765      53 086  1             1  29.03.2018 11:45    21             
  163 764  N         5 765      53 087  0             2  29.03.2018 11:45    21             
  163 765  N         5 765      53 088  0             2  29.03.2018 11:45    21             
  163 766  N         5 765       8 940  0             2  29.03.2018 11:45    21             
  163 767  N         5 765      41 931  0             2  29.03.2018 11:45    21             
  </code></pre>
  
  <p>I've tried with:  </p>
  
  <pre><code>SELECT c1.*
  FROM (select * FROM obdg where ID_RODZICA = '5765') c1
  WHERE NOT EXISTS
      (SELECT c2.*
      FROM (select * from obdg WHERE ID_RODZICA = '5765') c2
  WHERE c1.GRUPA = MAXVALUE(c2.GRUPA))
  </code></pre>
  
  <p>eliminating the max value, but result of that is simply nothing. When I use &lt; instead of = before MAXVALUE(c2.GRUPA) I get:</p>
  
  <pre><code>UID      TYP  ID_RODZICA  ID_DZIALKI  PRZED_PO  GRUPA  DTW               OSOW  DTU  OSOU
  253 171  N         5 765      41 931  0             3  29.03.2018 21:14    21             
  253 172  N         5 765      53 088  0             3  29.03.2018 21:14    21             
  253 173  N         5 765       8 940  0             3  29.03.2018 21:14    21             
  253 174  N         5 765      49 796  0             3  29.03.2018 21:14    21             
  253 175  N         5 765      49 426  0             3  29.03.2018 21:14    21             
  253 176  N         5 765      53 085  0             3  29.03.2018 21:14    21             
  253 177  N         5 765      53 086  0             3  29.03.2018 21:14    21             
  253 178  N         5 765      67 386  0             3  29.03.2018 21:14    21             
  253 179  N         5 765      67 387  0             3  29.03.2018 21:14    21             
  253 180  N         5 765      67 388  0             3  29.03.2018 21:14    21             
  </code></pre>
  
  <p>obviously, as I am eliminating all values lower than max (as far as I understand that).  </p>
  
  <p>I also tried something much simpler:  </p>
  
  <pre><code>SELECT * FROM OBDG
  WHERE ID_RODZICA = '5765' AND GRUPA &lt; MAXVALUE(GRUPA)
  </code></pre>
  
  <p>but again I get nothing in results window. If I change "MAXVALUE(GRUPA)" to just "3" I get expected results, but again, I can't specify the max value. </p>
  
  <p>What am I doing wrong?</p>