首页
学习
活动
专区
圈层
工具
发布

SQL 计算中位数

笔者在 HackerRank 上的 SQL 编程挑战看到这题,这题有 96% 的提交成功率。实际上,使用 SQL 求中位数远远没那么简单。...解决方案 解决方案主要有两种,第一种方案是对数据按大小排序后找到居中的值,再求值的平均数;第二种解决方案计算出每个数与其它数的相对距离(两数相减,结果为正则作 1,结果为负作 0,相等是 0),再对位移的结果加和...对应的 SQL 实现: # 准备数据 WITH t AS (SELECT 3 AS num UNION ALL SELECT 6 UNION ALL SELECT 3 UNION ALL SELECT...比如“1,2,3,5,6,7”这组数据,计算 margin,结果如下: num margin ------ -------- 1 5 2 3...ON 1 = 1 GROUP BY a.num) SELECT AVG(num) FROM t1 WHERE equal >= margin 由于我们对数据做了笛卡尔积的操作,因此实际上计算出来的

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    函数计算 Python 连接 SQL

    python 连接数据库通常要安装第三方模块,连接 MS SQL Server 需要安装 pymssql 。...函数计算的 runtime 运行时的目录是只读的,所以对于需要使用 apt-get 和 pip 安装依赖的场景,需要将依赖安装在代码目录而不是系统目录。...具体安装方法可以参考《函数计算安装依赖库方法小结》。而 pymssql 的老版本涉及到编译安装,比常见的二级制安装到本地目录略复杂一些。...下面的例子是基于函数计算 runtime python3.6 的,对于 python2.7 也进行了测试,同样适用。...小结 这是一份来迟的函数计算使用 sql server 数据库的配置文档。当前版本的 pymssql 已经不再需要源码安装了。但是 pip 源码包安装的方法,对于其他类似的场景也是适用的。

    1.7K20

    SQL后计算的利器SPL

    有些计算SQL不擅长,包括复杂的集合计算、有序计算、关联计算、多步骤计算,经常也需要移到数据库外实现。 实现流程控制时,因为更难移植、耦合性更高、影响数据安全,不方便使用存储过程。...此外,还有涉及多数据库和非数据库的场景,也无法使用SQL完成计算任务,只能在外部完成。 这样,就要在应用程序中实现SQL后计算任务。...SQL返回的数据一般都是结构化数据,那么好的SQL后计算技术也要有方便的结构化数据对象,能够进一步计算和处理返回的数据;提供丰富的库函数,拥有不亚于SQL的计算能力;最好还能支持循环和判断语法以实现流程控制...特别地,SQL后计算技术要用在应用程序中,要易于被集成。 Java是重要的开发语言,但JDK提供的方法过于基础,虽然能实现SQL后计算,但开发效率很低。...这些ORM技术的计算能力还远不如SQL,提供的计算函数非常有限,用Java硬写的现象仍然非常普遍。

    1.5K30

    hive的安装

    版本选择 hive1:计算引擎使用的是mr(基于磁盘计算的); hive2:计算引擎使用的默认是mr,但是可以更换计算引擎为spark、tez;spark是基于内存计算的,速度快,但是spark程序对内存要求比较高...这就是derby数据库的缺陷,具体是什么缺陷,我们下面进行原因分析。 ③ hive不使用derby作为默认数据库的原因是什么呢? derby属于"单用户模式",主要体现在目录上。...这就说明: derby元数据库只记录了,第一次进行元数据库初始化后,在那个bin目录下所执行的任何sql命令的元数据信息。...总结如下: derby作为hive的默认数据库,也不是不可以,只是说我们在哪里执行的初始化操作,以后就必须在该目录下执行相关的sql操作。...想要在任何地方启动hive,并执行sql操作,就必须重新初始化操作,也就是说你每换一个目录执行sql命令,都必须重新进行初始化。

    2.4K20

    计算MySQL表碎片的SQL整理

    我想碎片的情况在数据库中是很少有清晰的界定,不过它的的确确会带来副作用,通过修复碎片情况我们可以提高SQL的执行效率,同时能够释放大量的空间。...但是在这里我们总是会感觉有些隔靴搔痒,因为我们通过计算得到了逻辑大小,但是我们还是无从得知物理文件的大小,如果逐个去通过du方式计算,这个成本是很高的,而且如果有很多的表,这种模式的效率和代价是不大合理的...,而且不够清晰,我们可以写一个简单的SQL来做下统计,就是把那些需要修复的表列出来即可。...SQL如下: SELECT t.table_schema, t.table_name, t.table_rows, t.data_length+ t.index_length...其中对于逻辑大小的计算做了一些取舍,默认在MySQL中变化的数据在10%以外是会重新去统计计算的,所以我们可以把基数调整的稍大一些为1.1,然后以这个为基线,如果碎片率超过了200%则计入统计结果中。

    3.4K10

    用SQL进行用户留存率计算

    今天我们来分享一个常见案例,用SQL来计算用户留存率。 目录: 1. 案例数据 2. 思路分析 3. 完整代码 1. 案例数据 这里我们一共两份日志数据,分别是用户账号创建的日志以及用户登录的日志。...账号创建日志 账号创建日志 用户登录日志 登录日志 以上案例数据 后台回复 955 可以在SQL文件夹里data领取 2....处理 SELECT DISTINCT STR_TO_DATE( $part_date, '%Y-%m-%d' ) login_date, role_id FROM role_login 为了计算某条登录日志是该用户创建账号后的第几天登录...create_log.role_id)) ) temp_1 GROUP BY create_date ) temp_2 ORDER BY create_date ASC 以上就是本次全部内容,由于不同的sql...后续我们会陆续进行SQL与Python的常见数据处理计算案例分享,敬请期待!

    1.9K20

    用SQL计算用户连续登录天数

    上次我们根据用户创建账号和登录日志进行了《用SQL进行用户留存率计算》,今天我们继续用这份用户登录日志来计算用户连续登录天数。 1....用户登录日志 用户登录 以上案例数据 后台回复 955 可以在SQL文件夹里data领取 2. 思路分析 其实,我们之前分享过几期类似的案例,大家感兴趣可以去看看。...《『数据分析』pandas计算连续行为天数的几种思路》 《利用Python统计连续登录N天或以上用户》 今天,我们用SQL来进行本次的操作,大致分为以下几步: 数据去重 SELECT DISTINCT...SELECT DISTINCT role_id , $part_date date FROM role_login ) temp_1 再用登录日期和排序序号进行差值计算...后续我们会持续分享SQL和Python的实操案例哈,敬请期待!

    3.8K30

    Flink SQL 实时计算UV指标

    用一个接地气的案例来介绍如何实时计算 UV 数据。...大家都知道,在 ToC 的互联网公司,UV 是一个很重要的指标,对于老板、商务、运营的及时决策会产生很大的影响,笔者在电商公司,目前主要的工作就是计算 UV、销售等各类实时数据,体验就特别深刻, 因此就用一个简单...demo 演示如何用 Flink SQL 消费 Kafka 中的 PV 数据,实时计算出 UV 指标后写入 Hbase。...格式写入下游 Kafka,消费时第一步要先反序列化 PB 格式的数据为 Flink 能识别的 Row 类型,因此也就需要自定义实现 DeserializationSchema 接口,具体如下代码, 这里只抽取计算用到的...} return null; } 编写 Flink Job 主程序输入标题 将 PV 数据解析为 Flink 的 Row 类型后,接下来就很简单了,编写主函数,写 SQL

    2.8K20
    领券