当前位置: 首页 > news >正文

企业网站 实名认证网络舆情监测分析

企业网站 实名认证,网络舆情监测分析,佛山企业名录黄页,免费建立网站的平台文章目录 前言实践一、按月统计没有为0实践二、 统计某月每天的数量实践三、对象和表随意JOIN实践四、 Listint和表随意JOIN实践五、大数据处理实践六、每10分钟统计Count实践七、 每个ID都要对应时间总结 前言 在我们实际开发场景中#xff0c;报表是最常见的功能int和表随意JOIN实践五、大数据处理实践六、每10分钟统计Count实践七、 每个ID都要对应时间总结 前言 在我们实际开发场景中报表是最常见的功能业主爸爸们最喜欢对着大屏和报表指点江山。 今天介绍如果通过 sqlsugar 层来处理报表数据。 Sql 可以方便的创建 临时表 并且可以将这些 临时表 进行 JOIN 操作。 Sql 可以方便的实现 行列互转 操作。 以上2点用 sqlsugar 就能很好解决下面我们将来展示几个最常见的实践示例。 先准备一张表表结构如下 实践一、按月统计没有为0 我们用 Gropby 实现查询发现结果就只有3条记录其中2月份就没有数据那么这个 Sql 就不符合要求。 这个时候我们就需要生成一个月份 临时表 然后上面的表在和临时表 进行 JOIN 再分组会不会认为 Sql 也挺麻烦的呢 用 SqlSugar 轻松实现 var queryableLeft db.Reportable(ReportableDateType.MonthsInLast1years).ToQueryableDateTime(); //生成月份 //ReportableDateType.MonthsInLast1yea 表式近一年月份 并且queryable之后还能在where过滤 var queryableRight db.Queryableoperateinfo(); //声名表//月份和表JOIN var listqueryableLeft.LeftJoin(queryableRight,(x1,x2)x2.operate_time.ToString(yyyy-MM)x1.ColumnName.ToString(yyyy-MM)).GroupBy((x1,x2)x1.ColumnName).Select((x1, x2) new {//null的数据要为0所以不能用countcount SqlFunc.AggregateSum(SqlFunc.IIF(x2.id 0, 1, 0)), date x1.ColumnName.ToString(yyyy-MM)}).ToList();//技巧 近50天 //var day30 Enumerable.Range(0,50).Select(itDateTime.Now.Date.AddDays(it*-1)).ToList() //var queryableLeft db.Reportable(day30).ToQueryableDateTime();实践二、 统计某月每天的数量 用 Sql 进行分组查询 结果只查询出1号和2号的数据不符合要求。 用 SqlSugar 轻松实现 //如果是查询当月那么 time就是 DateTime.Now var days (time.AddMonths(1) - time).Days;//获取1月天数 var dayArray Enumerable.Range(1, days).Select(itConvert.ToDateTime(time.ToString(yyyy-MM-it))).ToList();//转成时间数组 var queryableLeft db.Reportable(dayArray).ToQueryableDateTime(); var queryableRight db.Queryableoperateinfo(); var list db.Queryable(queryableLeft, queryableRight, JoinType.Left,(x1, x2) x1.ColumnName.Datex2.operate_time.Date).GroupBy((x1, x2) x1.ColumnName).Select((x1, x2) new{count SqlFunc.AggregateSum(SqlFunc.IIF(x2.id 0, 1, 0)),day x1.ColumnName.Day}).ToList();//技巧 近50天 //var day30 Enumerable.Range(0,50).Select(itDateTime.Now.Date.AddDays(it*-1)).ToList() //var queryableLeft db.Reportable(day30).ToQueryableDateTime();如果表格需要行转列代码如下 //如果是查询当月那么 time就是 DateTime.Now var days (time.AddMonths(1) - time).Days;//获取1月天数 var dayArray Enumerable.Range(1, days).Select(it Convert.ToDateTime(time.ToString(yyyy-MM-it))).ToList();//转成时间数组 var queryableLeft db.Reportable(dayArray).ToQueryableDateTime(); var queryableRight db.Queryableoperateinfo(); var list db.Queryable(queryableLeft, queryableRight, JoinType.Left,(x1, x2) x1.ColumnName.Datex2.operate_time.Date).GroupBy((x1, x2) x1.ColumnName).Select((x1, x2) new{count SqlFunc.AggregateSum(SqlFunc.IIF(x2.id 0, 1, 0)),day x1.ColumnName.Day,name合计}).ToPivotTable(it it.day, it it.name, it it.Sum(x x.count));//在统计时存在空引用要改成这样//.ToPivotTable(it it.day, it it.name, it it.Any() ? it.Sum(y y.Count):0 );实践三、对象和表随意JOIN 比如我们创建一个 List 对象我们这个 List 对象就能和表进行 Join 了 var queryable2 db.Reportable(List实体).ToQueryable();var list db.QueryableOrder().InnerJoin(queryable2, (x1, x2) x1.Id x2.OrderId).Select((x1, x2) new { name x1.Name, id x1.Id, orderid x2.OrderId }).ToList();实践四、 List和表随意JOIN //Order join listintvar ids new Listint() { 1, 2, 3 };var queryable2 db.Reportable(ids).ToQueryableint();var list db.QueryableOrder().InnerJoin(queryable2, (x, y) x.Id y.ColumnName).ToList();//listint join Order var ids new Listint() { 1, 2, 3 };var list2db.Reportable(ids).ToQueryableint().InnerJoinOrder((y, x) y.ColumnName x.Id).ToList();实践五、大数据处理 按天统计 Count左边的表时间多了我们可以用临时表进行性能优化。 ListDateTime dts new ListDateTime() { }; for(int i 0; i 1000; i)//搞出所有时间断 {dts.Add(DateTime.Now.Date.AddDays(-i)); }//创建临时表 (用真表兼容性好表名随机)var tableName Temp SnowFlakeSingle.Instance.NextId();var type db.DynamicBuilder().CreateClass(tableName, new SugarTable()).CreateProperty(ColumnName, typeof(DateTime), new SugarColumn() { IsPrimaryKey true })//主键不要自增 .BuilderType();db.CodeFirst.InitTables(type);//创建表//将时间集合插入临时表 var insertDatadts.Select(it new SingleColumnEntityDateTime() { ColumnName it }).ToList(); db.FastestSingleColumnEntityDateTime().AS(tableName).BulkCopy(insertData);//查询统计 var list db.QueryableSingleColumnEntityDateTime().AS(tableName).LeftJoinOrder((it, o) o.CreateTime.Dateit.ColumnName.Date).GroupBy(it it.ColumnName).Select((it, o) new{it it.ColumnName,count SqlFunc.AggregateCount(o.Id)}).ToList();//删除临时表 db.DbMaintenance.DropTable(tableName);实践六、每10分钟统计Count ListDateTime dts new ListDateTime() { DateTime.Now.Date.AddDays(1)};for (int i 0; i 100000; i)//搞出所有时间断{dts.Add(dts.Last().AddMinutes(-10));}dts dts.Where(it it Convert.ToDateTime(2023-1-1)).Where(it it Convert.ToDateTime(2023-4-7))//过滤出你要的时间.ToList();var list111db.Reportable(dts).ToQueryableDateTime().LeftJoinOrder((it, o) o.CreateTime it.ColumnName o.CreateTime it.ColumnName.AddMinutes(10)).GroupBy(it it.ColumnName).Select((it,o) new{itit.ColumnName,countSqlFunc.AggregateCount(o.Id)}).ToList();实践七、 每个ID都要对应时间 ListDateTime dts new ListDateTime() { 七月2号 ,七月3号 }; var IdQ db.QueryableOrder().Select(it new Order(){Id it.Id}).Distinct();var dateQ db.Reportable(dts).ToQueryableDateTime();var newlist IdQ.InnerJoin(dateQ, (x, y) true).Select((x,y)new { idx.Id,timey.ColumnName}).MergeTable()//leftjoin .OrderBy(itit.time).ToList();总结 以前用原生 SQL 写报表查询真的太费劲了现在有了 ORM 的加持感觉不要太好。好了今天就到这吧给我点点赞拉拉关注。 ​ .NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列 【入门必看】.NET开源 ORM 框架 SqlSugar 系列 【实体配置】.NET开源 ORM 框架 SqlSugar 系列 【Db First】.NET开源 ORM 框架 SqlSugar 系列 【Code First】.NET开源 ORM 框架 SqlSugar 系列 【数据事务】.NET开源 ORM 框架 SqlSugar 系列 【连接池】.NET开源 ORM 框架 SqlSugar 系列 【查询目录】.NET开源 ORM 框架 SqlSugar 系列 【查询基础】.NET开源 ORM 框架 SqlSugar 系列 【排序用法】.NET开源 ORM 框架 SqlSugar 系列 【分组去重】.NET开源 ORM 框架 SqlSugar 系列 【联表查询】.NET开源 ORM 框架 SqlSugar 系列 【导航查询】.NET开源 ORM 框架 SqlSugar 系列 【子查询】.NET开源 ORM 框架 SqlSugar 系列 【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列 【配置查询】.NET开源 ORM 框架 SqlSugar 系列 【并集查询】.NET开源 ORM 框架 SqlSugar 系列 【树型查询】.NET开源 ORM 框架 SqlSugar 系列 【表格查询】.NET开源 ORM 框架 SqlSugar 系列 【动态表达式】.NET开源 ORM 框架 SqlSugar 系列 【查询函数】.NET开源ORM框架 SqlSugar 系列 【过滤器】.NET开源 ORM 框架 SqlSugar 系列 ​
http://www.dnsts.com.cn/news/187022.html

相关文章:

  • dw建设的网站怎么看故宫博物院官网网站咋做的
  • 北京做网站设计公司wordpress博客模板缺少插件
  • 网站界面 欣赏培训心得体会范文大全1000字
  • 最好的免费cms系统安阳网站建设优化
  • 厦门市建设工程质量安全协会网站中国各大网站名称
  • 如何做高网站的浏览量文网文许可证
  • 下载建网站百度指数 多少流量 网站名
  • 做移动网站排名软件顺企网下载
  • 网站的建设方面如何写网站改版的影响
  • 青岛网站推广外包用vs2013做网站案例
  • 东莞网站建设最优建设一个教程视频网站需要什么资质
  • 手机网站 免费新闻营销的优势
  • 产品展示网站源码php范县网站建设公司
  • 南京企业网站做优化查找全国免费网站建设
  • 网站设计手机版为什么那么多背景wordpress 预约时间
  • 网站开店前的四项基本建设手机微信一体网站建设
  • 上海黑马网站制作谷歌网站关键词优化
  • 杭州的设计网站建设自己做家具网站
  • php网站投票源码网站建设营业执照如何写
  • 用阿里云空降怎么建设网站微信网站建设教程
  • 做一个谷歌网站多少钱创意100图片欣赏
  • 第一家中文商务网站北京互联网企业有哪些
  • 宝山区网站建设怎么推广自己的公司网站
  • 外贸网站框架织梦高端html5网站建设工作室网络公司网站模板
  • 行业seo网站优化方案建设积分兑换商城网站
  • 云建站精品模版国外购物网站有哪些
  • 顺的品牌网站设计价位赵本山死了最新新闻
  • 电子商务网站开发语言直播网站开发多少钱
  • sem搜索引擎郑州seo优化公司排名
  • 小程序建站哪家好网站建设行业2017