【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

LINQ 的分组聚合技术

  • 2008-01-07
  • 本文字数:558 字

    阅读完需:约 2 分钟

很大程度上来讲,LINQ 的工作方式很像 SQL。查询源定义、join、select 和 where 子句都是相当标准的,而 Group/By/Into 子句则正是我们这里要仔细说明的。SQL 总是返回矩阵式数据集,与它不同的是,LINQ 具备了返回层次化数据的能力,这也给它自己带来了更多新的挑战。

举一个例子,将客户按照所属 country 和 city 进行分组查询,在 SQL 中,可能会通过在客户端手动分组或者执行 1+N+(N*M)次查询来实现,一个查询用来获取所有的国家,一个查询用来获取每个国家的所有城市,然后再逐个查询出每个国家的每个城市下所有的客户列表。

而在 LINQ 中,它可以通过一个带有一系列子查询的查询语句一次性完成,当然,这也增加了查询的复杂度。Mitsu 演示如下:

<p>var q =<br></br> from c in db.Customers<br></br> group c by c.Country into g<br></br> select new { <br></br> g.Key, <br></br> Count = g.Count(), <br></br> SubGroups = from c in g <br></br> group c by c.City into g2<br></br> select g2};</p>

为说明 LINQ 框架的灵活性,Mitsu 将它简化到了仅一行:

<p>var result = customers.GroupByMany(c => c.Country, c => c.City);</p>

Mitsu 用一种能适用于任何 LINQ 查询的方式实现了它。你可以在他的博客上查看源码以及关于它是如何工作的解释文章。查看英文原文 LINQ Grouping Techniques

2008-01-07 23:441782
用户头像

发布了 90 篇内容, 共 12.7 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

这10个强大的CSS属性,每个前端都要懂

伤感汤姆布利柏

TiKV集群断电(灾难)恢复过程记录

TiDB 社区干货传送门

6.x 实践

索引加速功能真能提升10倍吗?--TiDB V6.1.0-V7.1.0建索引速度对比

TiDB 社区干货传送门

版本测评 性能测评 7.x 实践

tidb之旅——生成列

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

【HDC.Cloud 2023】华为开发者大会2023来了!这份PaaS参会指南请查收!

华为云PaaS服务小智

云计算 华为云 华为开发者大会2023

aws上采用tidb和原生使用aws rds价格的比较。兼数据分析性能的测试

TiDB 社区干货传送门

TiDB 底层架构 性能测评 7.x 实践

# 文盘Rust -- FFI 浅尝

TiDB 社区干货传送门

开发语言

tidb之旅——tidb架构选择

TiDB 社区干货传送门

迁移 安装 & 部署 6.x 实践

tidb之旅——资源管控

TiDB 社区干货传送门

新版本/特性解读 7.x 实践

干货满满!阿里、京东、网易等多位专家力荐的高并发编程速成笔记

小小怪下士

Java 编程 程序员 高并发

活动预告|7月29日 Streaming Lakehouse Meetup·北京站

Apache Flink

大数据 flink 实时计算 信息推送

阿里云瑶池数据库出席2023可信数据库发展大会,PolarDB荣获多项评测证书

科技热闻

云数据库是杀猪盘么,去掉中间商赚差价,aws数据库性能提升 10 倍!价格便宜十倍。

TiDB 社区干货传送门

数据库架构设计 7.x 实践

成都堡垒机采购选择哪家好?具体功能有哪些?具体多少钱?

行云管家

网络安全 信息安全 成都 堡垒机

如何使用 NFTScan NFT 数据创建一个 ERC-6551 账户?

NFT Research

ERC721 NFT\

架构成长之路 | 图解分布式共识算法 Paxos 议会协议

阿里技术

分布式 PAXOS Paxos 议会协议

AI推理实践丨多路极致性能目标检测最佳实践设计解密

华为云开发者联盟

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年6月刊

墨天轮

MySQL 数据库 oracle postgresql 国产数据库

简单三步完成离线升级TIDB v7.1(服务器无互联网环境)

TiDB 社区干货传送门

版本升级 7.x 实践

TiDB v7.1.0 跨业务系统多租户解决方案

TiDB 社区干货传送门

实践案例 新版本/特性解读 应用适配 HTAP 场景实践 7.x 实践

TiDB 7.1.0 LTS 特性解读 | 资源管控 (Resource Control) 应该知道的 6 件事

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

tidb之旅——dm工具篇

TiDB 社区干货传送门

迁移 安装 & 部署 6.x 实践

推荐!十个平台工程工具助力开发人员提升效率和体验

SEAL安全

温州是几线城市?有几家正规等保测评机构?

行云管家

等级保护 等保测评机构 温州

华为开发者大会:软件开发小白的华为云云上初体验

华为云PaaS服务小智

云计算 软件开发 华为云 华为开发者大会2023

亿级日活业务稳如磐石 华为云发布性能测试服务CodeArts PerfTest

华为云PaaS服务小智

云计算 软件开发 性能测试 华为云

TiDB v7.1.0 资源管控功能是如何降低运维难度和成本-实现集群资源最大化?

TiDB 社区干货传送门

实践案例 版本测评 性能测评 应用适配 7.x 实践

设计通用流程和可变点的方法一些思考

快乐非自愿限量之名

设计 教程 通用流程

国产替代:国有企业数智化转型的挑战与机遇

用友BIP

国产替代

TiDB 7.1 资源管控验证测试

TiDB 社区干货传送门

版本测评 新版本/特性解读 7.x 实践

LINQ的分组聚合技术_.NET_Jonathan Allen_InfoQ精选文章