mysql 统计查询

mysql中一条sql语句中使用多个count关联查询多张表

SELECT  sum(fkNum) fkNum,sum(tsNum) tsNum,sum(fjNum) fjNum
FROM (
SELECT COUNT(*) fkNum,0 tsNum,0 fjNum FROM yw_consult_feedback WHERE con_id = 1
UNION ALL
SELECT 0 fkNum,COUNT(*) tsNum,0 fjNum FROM yw_consult_user_fb WHERE con_id =1
UNION ALL
SELECT  0 fkNum,0 tsNum,COUNT(*) fjNum FROM yw_consult_attachment WHERE con_id = 1
) t

结果如图
在这里插入图片描述

mybatis插入或者更新

insert into yw_consult_user_fb (con_id, ex_id) values
		<foreach collection="exIdList" item="exId" separator=",">
			(#{conId,jdbcType=INTEGER},#{exId,jdbcType=INTEGER})
		</foreach>
		ON DUPLICATE KEY UPDATE
        con_id = VALUES(con_id),ex_id = VALUES(ex_id)
        

case when 运用

1.分组

SELECT
	user_type userType,
CASE
		user_type 
		WHEN 0 THEN
		'管理员数量' 
		WHEN 1 THEN
		'专家数量' ELSE '未知' 
	END AS NAME,
	COUNT( user_type ) num 
FROM
	sys_user 
GROUP BY
	user_type

2.搜索

SELECT 
max(CASE feedback WHEN 0 THEN 
(SELECT COUNT(*) FROM yw_consult_user_fb WHERE feedback=0 AND ex_id =1)
ELSE 0 END)  wfk ,
max(CASE feedback WHEN 1 THEN 
(SELECT COUNT(*) FROM yw_consult_user_fb WHERE feedback=1 AND ex_id =1)
ELSE 0 END)  asfk,
max(CASE feedback WHEN 2 THEN 
(SELECT COUNT(*) FROM yw_consult_user_fb WHERE feedback=2 AND ex_id =1)
ELSE 0 END) ysfk
FROM
yw_consult_user_fb

查询时间相关数据

今年 YEAR(NOW())

SELECT YEAR(sendtime),YEAR(NOW()) from yw_consult_user_fb

在这里插入图片描述
上一年 YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR))

SELECT YEAR(sendtime),YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR)) from yw_consult_user_fb

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值