目的是展示出上一年整年每月的舆情数量,由于前面几个月确实没数据,所以看起来图表有些奇怪

最终效果如下:

数据库表结构如下:

我们根据CrawlDate 爬取舆情的时间字段去处理。

sql语句如下:

select year(CrawlDate) as 年,
month(CrawlDate) as 月,
count(*) as 数量,
WebSite
from Information
where year(CrawlDate)=2017
group by Website, year(CrawlDate), month(CrawlDate)

运行结果:

后台controller,没有使用sql语句而是另外一种:

  public class crawl{public string name;public int[] data;}
        /// <summary>/// 获取舆情走势/// </summary>/// <returns></returns>public ActionResult getCrawl(){//int  myYear = DateTime.Now.Year-1;using (BaseDataDbContext db = new BaseDataDbContext()){var q = db.Informations;//.Where(u=>u.CrawlDate.Year.Equals("2017"));var sums2 = from emp in qwhere emp.CrawlDate.Year.Equals(DateTime.Now.Year - 1)//查询去年的数据group emp by new { emp.WebSite, emp.CrawlDate.Year, emp.CrawlDate.Month } into gselect new { Peo = g.Key, Count = g.Count() };List<crawl> list = new List<crawl>();List<SelectListItem> s = ShiJianService.GetYqjcType();for (var j = 0; j < s.Count; j++){crawl c = new crawl();c.name = s[j].Text;int[] nums = new int[12] { 0,0,0,0,0,0,0,0,0,0,0,0 };foreach (var item in sums2){if (item.Peo.WebSite == s[j].Text){nums[item.Peo.Month - 1] = item.Count;}elsecontinue;}c.data = nums;list.Add(c);}string str = JsonConvert.SerializeObject(list, Formatting.Indented);return Content(str);}}

查询结果如图:

前台图表展示代码:

 function getCrawl() {$.ajax({type: 'GET',url: '/Account/Base/getCrawl',ajaxCache: true,datatype: 'json',success: function (datas) {//console.log(datas);var _obj = JSON.parse(datas);//console.log(_obj);// console.log(_obj);var  mydate =new Date();var lastyear = mydate.getFullYear() - 1;var chart = Highcharts.chart('container4', {title: {text: lastyear+'年舆情走势图'},subtitle: {text: '数据来源:舆情系统'},xAxis: {categories: getMonth()},yAxis: {title: {text: '舆情数量'}},legend: {layout: 'vertical',align: 'right',verticalAlign: 'middle'},plotOptions: {series: {label: {connectorAllowed: false},//pointStart: 2010}},series: _obj,responsive: {rules: [{condition: {maxWidth: 500},chartOptions: {legend: {layout: 'horizontal',align: 'center',verticalAlign: 'bottom'}}}]}});},error: function (ret) {// 此处放失败后执行的代码console.log(ret);}});}

SQL数据库取一年内每月的数据统计相关推荐

  1. 在SQL数据库中存储纬度和经度数据时要使用的数据类型是什么? [重复]

    本文翻译自:What datatype to use when storing latitude and longitude data in SQL databases? [duplicate] Th ...

  2. SQL数据库(分页查询、DCL 数据控制语言、通用函数、约束、多表查询)

    分页查询 语法 select 字段列表 from 表名 limit 起始索引,查询记录数(每页显示的条数) 注意 起始索引 从0开始, 起始索引 = (查询的页码-1)* 每页显示的记录数 1–5-0 ...

  3. oracle取本月最后一天是星期几_oracle SQL语句取本周本月本年的数据

    --国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...

  4. SQL数据库实战(含建表数据和查询案例)

    Oracle数据库安装的时候会自带一个练习用数据库(其中包含employee表,后来版本中此表改名为emp): 首先在安装过程中应该有个选项"是否安装实例表"(完全安装模式下默认是 ...

  5. sql数据库中有多列重复的数据查询

    数据库测试表testtable 一.单列重复查询 sql:SELECT Name FROM testtable t WHERE Name IN (SELECT Name FROM testtable ...

  6. Oracle+sql+取年度,oracle SQL语句取本周本月本年的数据

    --国内从周一到周日 国外是周日到周六 select to_char(sysdate-1,'D') from dual;--取国内的星期几 去掉减一取国外的星期 --取本周时间内的数据 select ...

  7. SQL数据库语言基础之SqlServer表数据的插入、更新与删除

    文章目录 一.数据的插入(INSERT INTO...VALUES) 二.数据的更新(UPDATE) 三.删除数据(DELETE) 一.数据的插入(INSERT INTO-VALUES) 1.数据插入 ...

  8. SQL SERVER:开窗函数 SUM() OVER() 数据统计中一例使用

    由于前一段时间胃痛,导致博客园博客都停更了一个月左右.近几天,胃病终于稍微有所好转,决定重新写博文. 前几天,有个朋友刚好问到本人有关 SQL 语句,大致是原表有两列,分别为月份.月份销售额,而需要一 ...

  9. azure云数据库_从Azure Databricks将数据加载到Azure SQL数据库

    azure云数据库 In this article, we will learn how we can load data into Azure SQL Database from Azure Dat ...

最新文章

  1. VCTransitionsLibrary –自定义iOS交互式转场动画的库
  2. oracle db file sequential read,db file sequential read等待事件
  3. ALV标准过滤功能失效
  4. Java Dom解析xml
  5. 敏捷测试理论以及实践(2)
  6. 【MFC】利用MFC向导生成单文档应用程序框架
  7. map reduce相关程序
  8. 将传统 WPF 程序迁移到 DotNetCore 3.0
  9. html中所有的标签,HTML中的所有标签及其做用!
  10. 去除tabbar的灰线
  11. iOS开发 Xcode10报错缺少libstdc++.6.0.9.tbd
  12. SPSS数据插补方法
  13. java:详解native方法
  14. 离线扫一扫识别车牌号 车牌识别 OCR识别技术
  15. ElasticJob分布式调度,使用注册中心zookeeper开启动态定时任务附源码(三)
  16. 可视化h5界面编辑器_超优秀 H5可视化制作编辑器H5DS
  17. R语言伴随矩阵的计算
  18. 微信小程序:蓝牙通讯,搜索、发送与接收
  19. h3cmsr830series说明书_H3C MSR830路由器怎么设置?
  20. ubuntu下使用vscode阅读内核源码或uboot源码使用技巧——search.excludefiles.exclude

热门文章

  1. 前端HTML中的怪异盒模型
  2. 【Vue3】vue3全解
  3. 【福利分享】Python爬虫入门实战——彼岸图网
  4. 知+是什么,知乎知+怎么开通?
  5. Cookie&Session
  6. Multicore Navigator (CPPI):Notify end of QM interrupt
  7. ceonts6.8 nginx做前端代理apache做后端服务架构配置
  8. VGA、QVGA、CIF、QCIF 常用视频格式说明
  9. 官方996调查因挤爆下架!网友:不996网站质量不行么?
  10. codeforce Anton and Fairy Tale