sql >> Database teknologi >  >> RDS >> Sqlserver

SQL RANK() over PARTITION på sammenføjede tabeller

Da rangeringen slet ikke afhænger af kontaktpersonerne

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

Altså :

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. MySQL-indkøbsvognsstruktur

  2. ODBC-opkald mislykkedes med lagret procedure - Send forespørgsel igennem

  3. Mysql indsæt tilfældig datotid i et givet dato- og tidsinterval

  4. SQL-forespørgsel:Hent-ordnede rækker fra en tabel