sql >> Databáze >  >> RDS >> Sqlserver

SQL RANK() nad PARTITION na spojených tabulkách

Protože pořadí vůbec nezávisí na kontaktech

RANKED_RSLTS

 QRY_ID  |  RES_ID  |  SCORE |  RANK
-------------------------------------
   A     |    1     |    15  |   3
   A     |    2     |    32  |   1
   A     |    3     |    29  |   2
   C     |    7     |    61  |   1
   C     |    9     |    30  |   2

Tedy :

SELECT
    C.*
    ,R.SCORE
    ,MYRANK
FROM CONTACTS C LEFT JOIN
(SELECT  *,
 MYRANK = RANK() OVER (PARTITION BY QRY_ID ORDER BY SCORE DESC)
  FROM RSLTS)  R
ON C.RES_ID = R.RES_ID
AND C.QRY_ID = R.QRY_ID


  1. Normální ukládání obrázků nebo mySQL blob?

  2. Django + MySQL na Mac OS 10.6.2 Snow Leopard

  3. MySql v DNX 5.0

  4. Programově vytvořte objekt `DataSource` pro Postgres JDBC