sql >> データベース >  >> RDS >> Mysql

EntityFrameworkでTakeとGroupBy

    これがあなたが求めていると思うものの例です。このクエリは、各クラスのGPAによる上位3つのsudtentsを返します:

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Ef6Test
    {
    
        class Student
        {
            public int Id { get; set; }
            public string Name { get; set; }
    
            public string Class{ get; set; }
    
            public decimal GPA { get; set; }
        }
    
        class Db : DbContext
        {
            public DbSet<Student> Students { get; set; }
        }
        class Program
        {
            static void Main(string[] args)
            {
                using (var db = new Db())
                {
                    var q = db.Students
                             .GroupBy(s => s.Class)
                             .SelectMany(g => g.OrderByDescending(s => s.GPA).Take(3));
    
                    Console.WriteLine(q.ToString());
    
                    Console.ReadKey();
                }
    
            }
        }
    }
    


    1. ClusterControl-高度なバックアップ管理-mariabackupパートI

    2. MariaDBの時間値からマイクロ秒を抽出する4つの関数

    3. postgresの行をマージし、nullでない場合は値を最新のものに置き換えます

    4. CHARACTERVARYINGフィールドの空の文字列を防止します