mysql查询多指标中有任意几个指标满足条数数据,最大数据,和平均数据值

一. 今天分享关于需要查询一些特殊的数据的sql语句这个在面试中是很常见的

1. 这是表中的原数据(表名称 city_tag)

mysql查询多指标中有任意几个指标满足条数数据,最大数据,和平均数据值

a) 查询出上面 oc, sc , pc , hc, gc, ghc 6个指标中有任意四个大于或等于50的城市名称,这个是不是不能使用普通的 or  语法了,

因为是任意的, 查询语句如下 (这里可以用 if 语句)

select city_temp.`name`,SUM(t1+ t2 + t3 + t4 + t5 +t6) as sum_data from (
    select name, 
                 if (oc  >= 50, 1, 0)  as t1,
                 if (sc  >= 50, 1, 0)  as t2,
                 if (pc  >= 50, 1, 0)  as t3,
                 if (hc  >= 50, 1, 0)  as t4,
                 if (gc  >= 50, 1, 0)  as t5,
                 if (ghc >= 50, 1, 0)  as t6
    from city_tag 
) city_temp

GROUP BY city_temp.`name`
HAVING sum_data >= 4;

b) 查询平均指标大于 50 的城市名称(这里强调下city_tag 的主键为name)所以这里的sql会和你看到的一些博客上面的成绩查询

有点不样,有的成绩查询科目的名称放在一个字段里面,同一个学生会有多条记录,那样就可以根据学生编号分组再 avg() 成绩就可以了,上面的表结构是每个指标都是一个单独的字段所以sql如下

SELECT
    t.`name`,
    (
        SUM(
            t.oc + t.sc + t.pc + t.hc + t.gc + t.ghc
        ) / 6
    ) AS souce
FROM
    city_tag t
GROUP BY
    t.`name`
HAVING
    souce > 50;

或 使用 

SELECT
    t.`name`
FROM
    city_tag t
GROUP BY
    t.`name`
HAVING
    (
        SUM(
            t.oc + t.sc + t.pc + t.hc + t.gc + t.ghc
        ) / 6
    )  > 50

2. 表结构如下

mysql查询多指标中有任意几个指标满足条数数据,最大数据,和平均数据值

a) 查询type相同的 value 最大城市的名称, 分析需要根据type 进行分组在分组里面用max()函数 获得最大的value 数据,再和原表city 进行 inner join 

sql 如下

SELECT
    h_city.`name`,
    h_city.type,
    h_city.`value`
FROM
    city h_city
INNER JOIN (
    SELECT
        city.type AS type,
        MAX(city.`value`) AS max_value
    FROM
        city
    GROUP BY
        city.type
) t_city ON h_city.type = t_city.type
AND h_city.`value` = t_city.max_value;

b) 需求再次升级 需要查询city 同一个类型(type ) value最大的前面两个城市(即需要查询出每个type下面前面最高的两个value)

sql如下 (需要 把 city t 和 city 当做两个表来理解)

SELECT
    t.`name`,
    t.type,
    t.`value`
FROM
    city t
WHERE
    (
        SELECT
            count(1)
        FROM
            city
        WHERE
            type = t.type
        AND `value` > t.`value`
    ) <= 1;

 

 

 

 

 

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

mysql查询多指标中有任意几个指标满足条数数据,最大数据,和平均数据值

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » mysql查询多指标中有任意几个指标满足条数数据,最大数据,和平均数据值
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏