sql 求max和min,但是第二大,第二小怎么算?

利用子查询,但这样速度较慢。

SELECT
 Baoming.id,
  Baoming.addtime AS ‘报名时间‘,
  CONCAT(Members.realname,Members.username) AS ‘客服姓名‘,
  Sem.name  AS `渠道来源`,
  CASE WHEN bmcs_fd_time IS NOT NULL THEN "分单" ELSE "未分单" END AS `是否分单`,
  CASE WHEN (SELECT COUNT(id) FROM come_go_phone_logs WHERE baoming_id = Baoming.id AND connect_status = 1  AND  call_mode = 2 ) > 0 THEN "接通" ELSE "未接通" END AS `是否接通`,
  (SELECT COUNT(id) FROM come_go_phone_logs WHERE baoming_id = Baoming.id   AND  call_mode = 2 ) AS ‘联系次数‘,
  (SELECT MIN(call_time) FROM come_go_phone_logs WHERE baoming_id = Baoming.id  AND  call_mode = 2 ) AS ‘第一次联系时间‘,
  (SELECT MIN(call_time) FROM come_go_phone_logs WHERE baoming_id = Baoming.id  AND  call_mode = 2  AND call_time>`第一次联系时间`) AS ‘第2次联系时间‘,
  (SELECT MIN(call_time) FROM come_go_phone_logs WHERE baoming_id = Baoming.id   AND  call_mode = 2  AND call_time>`第2次联系时间`) AS ‘第3次联系时间‘,
  (SELECT MIN(call_time) FROM come_go_phone_logs WHERE baoming_id = Baoming.id   AND  call_mode = 2  AND call_time>`第3次联系时间`) AS ‘第4次联系时间‘
FROM
  `baomings` AS Baoming
 LEFT JOIN come_go_phone_logs AS Phone
 ON Phone.baoming_id = Baoming.id
 LEFT JOIN `members` AS Members
 ON Phone.seats_cs= Members.`id`
 LEFT JOIN `sem_sources` AS Sem
 ON Sem.j_name=Baoming.bm_laiyuan
 WHERE Baoming.addtime >= ‘2017-07-01 00:00:00‘
  AND Baoming.is_fp = 1
  AND Baoming.zx_tuijian = 1
  AND Baoming.addtime <= ‘2017-07-11 23:59:59‘
  AND Baoming.id IN ( SELECT  baoming_id ,COUNT(id) AS c FROM come_go_phone_logs WHERE  connect_status = 1  AND  call_mode = 2  )
  GROUP BY Baoming.id
时间: 2024-10-19 10:51:45

sql 求max和min,但是第二大,第二小怎么算?的相关文章

SQL使用总结-like,MAX,MIN

1. 时间索引不容许使用like 对时间索引适应like,会时间索引变成字符串操作,成为遍历动作,失去索引价值. 错误写法: EXPLAIN  SELECT AVG(data_value) AS avg_value  FROM `host_monitor` WHERE host_ip= '192.168.106.11' AND data_type=3 AND add_time LIKE '2017-05-19 01%'; 正确写法: EXPLAIN SELECT AVG(data_value)

集合函数AVG,SUM,MAX,MIN

需要计算这些值的平均值.使用函数AVG(),你可以返回一个字段中所有值的平均值. 假如你对你的站点进行一次较为复杂的民意调查.访问者可以在1到10之间投票,表示他们喜欢你站点的程度.你把投票结果保存在名为vote的INT型字段中.要计算你的用户投票的平均值,你需要使用函数AVG(): SELECT AVG(vote) FROM opinion 这个SELECT语句的返回值代表用户对你站点的平均喜欢程度.函数AVG()只能对数值型字段使用.这个函数在计算平均值时也忽略空值. 首先我将原来的pet跟

Python之路Python内置函数、zip()、max()、min()

Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回true 例子 print(all([1,2,'1',''])) 输出结果 False 例子2 print(all('')) 输出结果 True any() 把序列中每一个元素做布尔运算,如果有一个为true就返回true, 但

MySQL greatest()和least()函数与MAX()和MIN()函数

下面的内容是个人学习记录,来自https://www.yiibai.com/mysql/greatest-least.html.请大佬勿喷,这里是要强调一点东西. MySQL GREATEST和LEAST函数介绍 它跟MAX()与MIN()函数的区别就是,前面是比较多个字段(列)的最大值最小值,后面是只获取单个字段(列)的最大最小值. GREATEST和LEAST函数都使用N个参数,并分别返回最大和最小值.下面说明GREATEST和LEAST函数的语法: GREATEST(value1, val

oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法

oracle中的聚合函数count.max.min.sum.avg以及NVL函数的用法 分组函数聚合函数对一组行中的某个列执行计算执行计算并返回单一的值.聚合函数忽略空值.聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用,所以有的时候也把其称之为分组函数.这类函数通常应用于报表统计中,以下展示Oracle常用的聚合函数的应用. 分组函数的介绍 作用于一组数据,并对一组数据返回一个值. 常见的分组函数有: Count 用来计算有效数据的数量 Min 返回一个数字列或计算列的最小

mvc 中Range中max和min值晚绑定

对于Attribute : Range(min,max)的min和max必须在用的时候给,可是需求有时需要把这两个值存db,动态取出的.这时就需要razor帮忙了: @Html.TextBoxFor(i => i.Amount, new { @class = "form-control", data_val_range = string.Format(Resx.AmountOutOfRange_0_1, Model.MinValue, Model.MaxValue), data_

SQL合计函数(avg、count、first、last、max、min、sum)

Aggregate 函数的操作面向一系列的值,并返回一个单一的值. 注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使用 GROUP BY 语句! 首先所有的SQL实例使用到下面的一张表 O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 Bush 2 2008/11/23 1600 Carter 3 2008/10/05 700 Bush 4 2008/09/28 300 B

MATLAB学习笔记(2):求矩阵最大值max函数,求矩阵最小值min函数

举例用的矩阵A: A=[1 3 5; 0 4 6; 3 4 0] 一.格式1 B=min(A):获得矩阵A每一列的最小值,返回值B为一个行向量,其第i列对应A矩阵第i列的最小值. C=max(A) :获得矩阵A每一列的最大值,返回值C为一个行向量,其第i列对应A矩阵第i列的最大值. 二.格式2 [B,index]=min(A):返回行向量B和index,B向量记录A的每列的最大值,index向量记录每列最大值的行号. [C,index]=max(A):返回行向量C和index,C向量记录A的每列

Python学习笔记 - 最牛逼的内建函数max和min

本文主要介绍了max的运行机制,以及如何传入和比较,min函数的运行机制和max一样,只是min取的是最小值 max/min 后直接跟序列会返回此序列的最大/最小值 max(iterable, key, default) 求迭代器的最大值,其中iterable 为迭代器,max会for i in … 遍历一遍这个迭代器,然后将迭代器的每一个返回值当做参数传给key=func 中的func(一般用lambda表达式定义) ,然后将func的执行结果传给key,然后以key为标准进行大小的判断. 以