处理 GroupBy 和 Having

本文介绍了一段使用F#进行数据库查询的示例代码,演示了如何利用GroupBy和Having子句来筛选和聚合数据。具体展示了如何设置连接字符串,定义SQLDataConnection类型,并执行LINQ查询来获取年龄分组的学生计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理 GroupBy 和 Having

#r @"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.Linq.dll";;
#r @"E:\Projects\F#3\FSharp.Data.TypeProviders.dll";;
open Microsoft.FSharp.Data.TypeProviders;;
open System.Linq;;
// Count()、DefaultIfEmpty 在其中
//open System.Data.Linq;;
//open System.Data.Linq.SqlClient;
// SqlMethods 作其中

[<Generate>]
type T0 = SqlDataConnection<"Data Source=.\SQLEXPRESS;Initial Catalog=FSharpSample;User ID=sa;Password=FSharpSample1234">

let TypeProvider14() =
    let db = T0.GetDataContext();
    let q = query {
        for s in db.Student do
        groupBy s.Age into g
        where (g.Count()>1)
        select (g.Key, g.Count())
    }

    q |> Seq.iter (fun (key, count) -> printfn "Key=%A Count=%d" key count)
    q |> Seq.length

//Key=<null> Count=1
//Key=20 Count=2
//Key=21 Count=2
//Key=22 Count=3
//Key=23 Count=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值