工作中用到统计12月份通话记录,统计号码拨打次数,但是问题出在一个号码可以拨打多次,每次可能接通也可能不接通,如果用主叫号码caller字段group by分组后count(*)统计数目,这样会导致不能看到统计数目中几条是接通,几条是未接通的,于是想到用union分是否接通各自统计,然后将统计结果按照号码排序放到一起,具体实现如下 billid(通话记录id),caller(主叫号码),callerstarttime(拨打时间),callerResult(拨打结果0未接通 1接通) sql实现语…
CREATE TABLE `test` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) CHARACTER SET latin1 DEFAULT NULL, `category_id` ) DEFAULT NULL, `date` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE DEFAULT CHARSET=utf8 这两天让一个数据查询难了.主要是对group by 理解的不够深入.才出现这样的情况,…
需要在mysql中解决记录的分组统计.排序,并抽取前10条记录的功能.现已解决,解决方案如下: 1)表结构 CREATE TABLE `policy_keywords_rel` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID', `content_id` int(11) NOT NULL COMMENT '文章id', `keyword_id` int(11) NOT NULL COMMENT '关键词id', `cnt` int(11)…
select '全部' AS `organ_category`, COUNT(*) AS amount FROM `organ_new` WHERE `city_code` ='SZ0755' AND `organ_type` ='P' AND `state` ='1' union all select `organ_category` ,COUNT(1) AS `amount` FROM `organ_new` WHERE `city_code` = 'SZ0755' AND `organ_t…
1 查询底薪超过公司平均底薪的员工信息? select e.empno,e.ename,e.salfrom t_emp as e join (select avg(sal) as avg from t_emp) t on e.sal > t.avg 2 统计人数 格式化时间 select count(*) as count, max(a.sal),min(a.sal), avg(a.sal) , floor(avg(DATEDIFF(NOW(),a.hiredate)/365)) from t_…
1.按照特定字段: 2.在某一日期范围内: 3.按日.按月统计: 4.动态传入数据库表名称. select <if test="dateType=="d"">DATE_FORMAT(tj.trans_date,'%Y-%m-%d') date1,</if> <if test="dateType=="m"">DATE_FORMAT(tj.trans_date,'%Y-%m') date1,&l…
sql示例如下: select success_time,query_time,order_no from pro_return_plan t where t.success_time in ( SELECT max(success_time) FROM pro_return_plan ' AND success_time IS TRUE ') GROUP BY order_no ORDER BY success_time DESC ) 按照success_time分组并保留最新时间的项…
这是我的代码: 前提是做了一个view:att_sumbase 首先分开统计每天的中午.下午饭点人数,这时需要分别去除中午和下午重复打卡的人.用了记录集的交,嵌套select的知识. 注意不能直接使用union,这里只能使用union all,因为union会去掉重复记录,一个员工上午吃了,下午也吃了,union只会算一条,而union则能看出一共吃了两次. //求出分组统计 $att = $result->execute("select userid ,count(userid) as…
最近在做一个招聘网时,需要显示一个月内企业招聘信息的发布数量,按日期分组统计,刚开始是直接从源数据库表里面进行group by,但这样子就出现日期不连续的问题了,我想要的效果是,若当天没有数据,则显示为0,这样就达到连续的效果.一开始的想法是使用外连接的方法,但这样就需要另外一张日期表作为连接的对象,研究半天,也就这办法来的实在点,如下: 这里我生成从2016-1-1开始的10w条日期数据,对于连接已经够用了,下面显示的是第9w9到10w的的数据 接着,就可以用left join做连接来做日期分…
做个笔记 SQLyog客户端访问MySQL服务器 统计数据:次数总数, 次数成功率,对象(obj)总数,对象(obj)成功率 要求:按时间排序和分组 sql语句如下: SELECT a.date AS `日期`, a.total AS `总次数`, a.objs AS `总对象数`, , ) AS `失败次数比率`, , ) AS `对象失败率` FROM (SELECT ) AS `total`, COUNT(DISTINCT(`obj_id`)) AS `objs`, , NULL)) AS…