sql >> Databasteknik >  >> RDS >> Sqlserver

Finns det en funktion i Entity Framework som översätts till RANK()-funktionen i SQL?

AFAIK Rank() har ingen inbyggd funktion i LINQ. Detta svar använder ditt tillvägagångssätt, men det verkar fungera för dem. Så här kan du använda det:

var customersByCountry = db.Customers
    .GroupBy(c => c.CountryID);
    .Select(g => new { CountryID = g.Key, Count = g.Count() });
var ranks = customersByCountry
    .Select(c => new 
        { 
            c.CountryID, 
            c.Count, 
            Rank = customersByCountry.Count(c2 => c2.Count > c.Count) + 1
        });



  1. MySql:Välj objekt som har alla värden

  2. Kan en MySQL SELECT-sats fungera utan att ange kolumnnamn?

  3. MySQL MyISAM slow count()-fråga trots att det täcker index

  4. Hur man har en anpassad sorteringsordning för en facklig fråga i Postgres