mysql 根据起止年份 查询所选年份数据

1、时间字段是datetime类型

2、需要用到中间表,表结构和数据链接下载

https://pan.baidu.com/s/1sAQ78e3Ao-KwvYJlaipbKQ

3、前两个 adddate 月日需要在数据库写死 从每年的-01-01开始,-最后一个日期同理xxxx-12-31

4、sql

select
    bri.orgid,
    date_format(years.date, ‘%Y‘) AS years,
    sum( case when bri.status = ‘1‘ then 1 else 0 end ) as num,
    sum( case when bri.status = ‘1‘ and bri.sex=‘1‘ then 1 else 0 end  ) as numman,
    sum( case when bri.status = ‘1‘ and bri.sex=‘2‘ then 1 else 0 end  ) as numgrid

from
    ( select adddate(‘2014-01-01‘, numlist.id) as ‘date‘,
        numlist.id
    from ( select n100.i * 365 as id from num as n100 ) as numlist
    where adddate(‘2014-01-01‘, numlist.id) <= ‘2019-12-31‘ ) years

left join building_resident_info bri on year (years.date) = year (bri.entrytime) and bri.status=‘1‘

and bri. status = ‘1‘
and bri.orgid like concat(‘37.02.82‘, ‘%‘)
group by
    years.date

5、效果图

  

如有疏漏,请指正!谢谢。

原文地址:https://www.cnblogs.com/w-yu-chen/p/10259395.html

时间: 2025-01-09 04:30:51

mysql 根据起止年份 查询所选年份数据的相关文章

mysql 根据起止年月 查询所选年月的数据

1.时间字段是datetime类型 2.需要用到中间表,表结构和数据链接下载 https://pan.baidu.com/s/1sAQ78e3Ao-KwvYJlaipbKQ 3.前两个 adddate 日需要在数据库写死 从每日的-01开始,-最后一个日期同理xxxx-xx-31 4.sql select bri.orgid, years.date, date_format(years.date, '%Y-%m') AS years, bri.entrytime a, sum( case whe

横瓜先生纵论NOSQL与MYSQL实现最热最新查询的分页性能比较

[状元]横瓜-PHP教父(601069289)  20:45:59 大家谈谈NOSQL与MYSQL的差距 NOSQL与MYSQL实现最热最新查询的分页性能比较 MYSQL千亿级要优化的,用起来的不敏捷 如果NOSQL一个语句能搞顶,何必用MYSQL 都没有比较过吗 [状元]Fang(1033289127)  20:46:29 nosql 是 sql 的补充啦 [元帅]IT柏拉图(2500875)  20:46:53 mongodb其实查询上的性能并不会比mysql多太大,只是sock有优势,真正

MySQL的YEARWEEK函数以及查询本周数据(转)

MySQL的YEARWEEK函数以及查询本周数据 MySQL 的 YEARWEEK 是获取年份和周数的一个函数,函数形式为 YEARWEEK(date[,mode]) 例如 2010-3-14 ,礼拜天 SELECT YEARWEEK('2010-3-14') 返回 11 SELECT YEARWEEK('2010-3-14',1) 返回 10 其中第二个参数是 mode ,具体指的意思如下: Mode First day of week Range Week 1 is the first we

mysql基础-数据库多表查询-记录(六)

0x01 MySQL多表查询和子查询 联结查询:事先将两张或者多张表join,根据join的结果进行查询 cross join:交叉联结  用的少, 相当于 (a+b)*(c+d+e) 所得结果的形式   用的少 自然联结  --- 只能在两者相等的情况下才能建立连接 等值联结:把相同的字段进行等值连接 外联结: 左外联接:只保留出现在左外连接元算之前(左边)的关系中的元组(以左表为准,) left_tb LEFT JOIN right_tb ON 条件 右外联接:只保留出现在右外连接元算之后(

MySQL:动态开启慢查询日志(Slow Query Log)

前言 在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一.要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改 慢日志设置方式 写入文件 写入数据库 实践操作 方式一:写入文件 编辑my.conf 中修改 log_slow_queries 的日志地址 $ cd /etc/mysql $ cat my.cnf |grep slow  log_slow_queries = /data/logs/mysql/mysql-slow.log $ sudo /etc

Mysql与Oracle的分页查询比较

MySql分页查询语句 下列查询语句中m代表行数的索引默认从0开始类似于pl/sql中的游标0表示从第一条开始n表示向后查询多少条数据. 例如: select * from emp limit 2,3表示查询第三条数据到第六条数据(包前不包后)也就是第三条数据包括第三条数据不包括第六条数据 也就是 3, 4,5条记录 select * from buss_stu_info limit m,n; Oracle数据库分页查询 一层分页查询: 及时数据量足够大几乎也不会受到影响查询速率足够快,一般在写

基于Mysql数据库的SSM分页查询

前言: Hello,本Y又来了,"分页"在我们使用软件的过程中是一个很常见的场景,比如博客园对于每个博主的博客都进行了分页展示.可以简单清晰的展示数据,防止一下子将过多的数据展现给用户,毕竟用户的阅读能力和短期接受力都有限,使用分页可以避免带给用户浏览上的不舒服感,利用它可以带给用户良好的体验,便于浏览和查询数据.那么本期我们的博客就来探讨关于分页,使用的Java的框架是Spring+Springmvc+mybatis,这也是目前企业非常流行的搭配方式,使用的数据库是Mysql,我们将

转MYSQL学习(四) 查询

MySQL中select的基本语法形式: select 属性列表 from 表名和视图列表 [where 条件表达式] [group by 属性名[having 条件表达式]] [order by 属性名[asc|desc]] [limit <offset>,row count] 说明: where子句:按照“条件表达式”指定的条件进行查询. group by子句:按照“属性名”指定的字段进行分组. having子句:有group by才能having子句,只有满足“条件表达式”中指定的条件的

ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询

ExtJs4.2+Mysql+Struts2+Hibernate3实现分页查询 1.demo简介 这是一个由ExtJs4.2,Mysql5.5 ,Struts2,Hibernate3.3构成的简单web项目,本人由于最近在研究ExtJs所以特意做了这个Demo,方便有需要的同学查看,也给自己留下学习笔记吧.需要特别说明我这里并没有整合Struts,Hibernate,这两个工具是独立运行的.转载请注明:http://blog.csdn.net/qiuzhping/article/details/