一条sql查询出多个统计结果

原创 2018年04月15日 18:56:55

今天又踩了一个坑:我在做查询的时候,条件是中文,结果导致查询不出来结果,换成英文就可以了,猜想是编码导致。想起来在数据库url配置哪里忘了加编码。加上之后就没问题了。

强制规定:url后面加 

?useUnicode=true&characterEncoding=UTF-8

最近公司有一个业务需求,统计一张表在每个条件下的数量。

以user为例,首先创建表并添加数据


接下来创建一个model用来接收从查询结果


创建mapper接口并创建一个方法


配置xml


测试



测试成功,没毛病!

最后附上两种统计查询方法

需求如下:

比如表中有一列flag。包含的值有0、1、2这三个状态。 我们需要分别统计出flag为0、1、2的行各有多少个。用一条SQL实现。

 

解决如下:


  1. select  
  2. sum(case when flag=0 then 1 else 0 end) cnt1,  
  3. sum(case when flag=1 then 1 else 0 end) cnt2,  
  4. sum(case when flag=2 then 1 else 0 end) cnt3,  
  5. from table;  
 


或者

 

[java] view plain copy
  1. select  
  2. count(case when flag=0 then 1 else null end) cnt1,  
  3. count(case when flag=1 then 1 else null end) cnt2,  
  4. count(case when flag=2 then 1 else null end) cnt3,  
  5. from table;  
 


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28726483/article/details/79951711

SQL查询结果集分组、排序(Row_Number()),取排序后的第n条

需求:先按员工编号分组排序,然后给每个分组从1,2...排序分析:需要Row_Number() OVER  语法解决:    SELECT emp_no,degree, Row_Number() OV...
  • cydbetter
  • cydbetter
  • 2018-03-28 13:29:34
  • 62

mysql一条sql查出多个条件不同的sum或count

最近做java后台遇到很多问题记录一下,有个需求是在一条sql中同时统计到几条条件不一样的sql或count,希望能帮助到需要的朋友,上代码和效果图: select  sum(pzgwjscd) as...
  • wangshan_1121
  • wangshan_1121
  • 2017-06-16 19:07:36
  • 1661

SQL查询所有新闻分类且关联出每个分类下的最新的一条新闻

假设有一张新闻分类表和一张新闻表,查询结果要:显示所有新闻分类且关联出每个分类下的最新的一条新闻。SELECT a.*, b.* FROM News a      LEFT JOIN (       ...
  • sven_xu
  • sven_xu
  • 2015-06-02 09:18:14
  • 777

SqlServer查询分组后每个分组的第N条数据

select t.* from (select sc_oto_equi.*,row_number() over (partition by group_id order by group_id)...
  • doudou_demo
  • doudou_demo
  • 2017-06-24 16:50:01
  • 459

分组查询取每组前n条记录实例

假设有这样一张运动员比赛成绩表 tb_score 现在要求查询出每个国家的前三名的成绩记录,查询语句可以这样写: 1、 select t3.id,t3.country,t3.score ...
  • zhutulang
  • zhutulang
  • 2015-09-23 15:17:56
  • 3936

SQL语句中查询并在结果中添加一条虚拟数据

在sql语句后用 union select  ‘date' as Field
  • suleil1
  • suleil1
  • 2015-10-28 16:56:12
  • 934

一条sql语句分别统计出来两张表的数据

http://bbs.csdn.net/topics/380114638 come表,nocome表,分别有字段tid,然后我要从come表和nocome表分别统计出来tid的次数。统计的结果要是...
  • A9925
  • A9925
  • 2016-02-15 19:35:47
  • 1797

oracle 实现分组结果集整合到一行多列显示

刚刚接触数据库的真正应用,刚开始有很多困难,在网上找答案也没有十分靠谱的结果,现在我把自己的经验总结下来,希望能给广大小鲜肉一点灵感,不胜荣幸。 比如要实现如下的功能,将表中的数据检索出来,放入到下...
  • Run_youngman
  • Run_youngman
  • 2016-12-22 15:55:12
  • 1769

oracle多表联合查询,统计查询,组函数,排序(order by),分组过滤(having分组完后再统计),子查询,集合运算

一、多表联合查询 通过连接可以建立多表查询,多表查询的数据可以来自多个表,但是表之间必须有适当的连接条件。为了从多张表中查询,必须识别连接多张表的公共列。一般是在WHERE子句中用比较运算符指明连接...
  • J1271820107
  • J1271820107
  • 2015-12-22 10:13:01
  • 3101

如何用一个SQL语句查询多个表的记录数

sql语句如下:select t1.num1,t2.num2 from   (select count(*) num1 from table1) t1,  (select count(*) num2 ...
  • keketrtr
  • keketrtr
  • 2010-09-19 11:23:00
  • 7693
收藏助手
不良信息举报
您举报文章:一条sql查询出多个统计结果
举报原因:
原因补充:

(最多只允许输入30个字)