VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)
Public Class LinqToList
'LINQ在C#中使用比较方便,但是在VB中使用比较麻烦,复杂,和C#用法并不太一样
Dim listNew As List(Of Product) = New List(Of Product) '新商品
Dim listOld As List(Of Product) = New List(Of Product) '旧商品 '****** 给 listNew 加载数据 此处省略******
'****** 给 listOld 加载数据 此处省略****** '查询 listNew 中的最高价 price1,并按 price,name,unit,model,node分组
Dim temp = From Item In listNew
Group Item By Key = New With {Key Item.Name, Key Item.Unit, Key Item.Model}
Into g = Group Select New With {.price1 = (Aggregate p In g Into Average(p.Price)),
.price = (From p In g Select p.Price),
.name = Key.Name,
.unit = Key.Unit,
.model = Key.Model,
.note = (From p In g Select p.Note)} 'note并未在分组中,无法再key中获取 '合并listNew 和listOld ,并按 price,name,unit,model,node分组,求出合并后的最高价price1,相同产品的个数.count
Dim tempMax = From Item In
((From Contact In listNew).Union(From Shipment In listOld))
Group Item By Key = New With {Key Item.Name, Key Item.Unit, Key Item.Model}
Into g = Group Select New With {.price1 = (Aggregate p In g Into Max(p.Price)),
.price = (From p In g Select p.Price),
.name = Key.Name,
.unit = Key.Unit,
.model = Key.Model,
.note = (From p In g Select p.Note),
.count = g.Count()} '最低价 .price1 = (Aggregate p In g Into Max(p.Price)) 改成 .price1 = (Aggregate p In g Into Min(p.Price))
'平均价 .price1 = (Aggregate p In g Into Max(p.Price)) 改成 .price1 = (Aggregate p In g Into Average(p.Price))
End Class Public Class Product
Private mPrice As Double '价格
Private mName As String '名称
Private mUnit As String '单位
Private mModel As String '规格
Private mNote As String '备注
Public Property Price() As Double '价格
Get
Return mPrice
End Get
Set(ByVal value As Double)
mPrice = value
End Set
End Property Public Property Name() As String '名称
Get
Return mName
End Get
Set(ByVal value As String)
mName = value
End Set
End Property Public Property Unit() As String '单位
Get
Return mUnit
End Get
Set(ByVal value As String)
mUnit = value
End Set
End Property Public Property Model() As String '规格
Get
Return mModel
End Get
Set(ByVal value As String)
mModel = value
End Set
End Property Public Property Note() As String '备注
Get
Return mNote
End Get
Set(ByVal value As String)
mNote = value
End Set
End Property
End Class
VB.NET中LINQ TO List泛型查询语句(分组,聚合函数)的更多相关文章
- 在Delphi中动态地使用SQL查询语句 Adoquery sql 参数 冒号
在Delphi中动态地使用SQL查询语句 在一般的数据库管理系统中,通常都需要应用SQL查询语句来提高程序的动态特性.下面介绍如何在Delphi中实现这种功能.在Delphi中,使用SQL查询语句的途 ...
- sql中having、group by用法及常用聚合函数
having是用在聚合函数的用法.当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算.运算完后就要用到HAVING 的用法了,就是进行判断了. 注意:sele ...
- ef实现一次查询多个聚合函数的字段
想用ef来写一个统计字段的语句,如下所示 select sum(price) as price_total, sum(amount) as amount_total from table1 发现似乎实 ...
- PHP中对mysql预编译查询语句的一个封装
原文地址:http://chen-shan.net/?p=474 为了防止sql注入,我们都使用过mysqli这个类,但是每次都需要绑定参数,绑定结果等,比较麻烦,所以可以把这些重复的语句封装成一个函 ...
- Django模型层之字段查询参数及聚合函数
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 字段查询是指如何指定SQL WHERE子句的 ...
- python-day71--django多表双下划线查询及分组聚合及F/Q查询
#====================================双下划线的跨表查询===============# 前提 此时 related_name=bookList 属性查询: # 查 ...
- django字段查询参数及聚合函数
字段查询是指如何指定SQL WHERE子句的内容.它们用作QuerySet的filter(), exclude()和get()方法的关键字参数. 默认查找类型为exact. 下表列出了所有的字段查询参 ...
- T-SQL - query03_去重查询|模糊查询|排序|分组|使用函数
时间:2017-09-29 整理:byzqy 本篇仍以"梁山好汉"数据表为例,介绍几个常用的 T-SQL 查询语句: 去重查询,关键字:distinct 使用通配符模糊查询,关键字 ...
- DQL排序查询和DQL聚合函数
DQL:查询语句 排序查询 语法: order by 字句 order by 排序字段1 排序方式1,排序字段2 排序方式2... 排序方式: ASC:升序,默认的 DESC:降序 SELECT * ...
随机推荐
- maya绝招(41--60)
第41招 捕捉和旋转 从MAYA5开始,双击工具箱中的移动缩放旋转工具,马上就可以调出工具属性栏.以旋转为例,将Snap Rotate勾选,并设置Step Size数值,就可以旋转特定的数值了 第42 ...
- java ee eclipse 配置 ssh框架
mvnDebug tomcat:run 这条命令主要用来远程测试,它会监听远程测试用的8000端口,在eclipse里打开远程测试后,它就会跑起来了,设断点,调试,一切都是这么简单. 0.如果是mav ...
- myeclipse6.0下载及注冊码
myeclipse6.0 下载地址.官方下载地址: http://www.myeclipseide.com/module-htmlpages-display-pid-4.html 本地快速下载地址: ...
- nodejs 简单对mongodb 操作
路由到了 index.js /* * GET home page. 控制器 */ exports.index = function(req, res){ // res.render('index', ...
- systemtap [主设备号,次设备好,inode]监控文件
SystemTap 是监控和跟踪运行中的linux 内核的操作的动态方法,SystemTap 应用:对管理员,SystemTap可用于监控系统性能,找出系统瓶颈,而对于开发者,可以查看他们的程序运行时 ...
- IOS-tableView中的cellHeadView随着table滚动
IOS-tableView中的cellHeadView随着table滚动 设置table的style 首先要将table设置为UITableViewStyleGrouped类型.这样就会得到table ...
- Map 迭代 两种方法
Map 迭代 两种方法 Map<String, String> map=new HashMap<String,String>(); map.put("1", ...
- 在Linux下用netstat查看网络状态、端口状态
在Linux下用netstat查看网络状态.端口状态 在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实 ...
- Java集群之session共享解决方案
随着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求.比如像盛大,淘宝这样的大型网络公司,更是如此. 集群,也就是让一组计算机服务器协同工作,达 ...
- 关于git status
如果只在本地修改,还没有commit,那么用git status, 打印信息为: 如果我本地没有修改文件,就是: