mc_devappear表中的数据可以计算出当天新增的设备数,launch2表中存储的数据可以计算出当天启动的所有设备数。用一句sql计算出二者比例(新增设备数/所有设备数)
【1】第一版
with temp as(
select count(distinct deviceid) as newdevnum from ana_fx_middle.mc_devappear where first_appear_hdfspar ='20161214' and hdfs_par='20161214'
full join
select count(distinct deviceid) as devicenum from src_huidu_mc.launch2 where hdfs_par ='20161214'
)
select newdevnum/devicenum from temp
缺陷:
AnalysisException: Syntax error in line 3: full join ^ Encountered: FULL Expected: AND, BETWEEN, DIV, GROUP, HAVING, ILIKE, IN, IREGEXP, IS, LIKE, LIMIT, NOT, OFFSET, OR, ORDER, REGEXP, RLIKE, UNION CAUSED BY: Exception: Syntax error
【2】第二版
with temp as(
select * from
(select '1' as id, count(distinct deviceid) as newdevnum from ana_fx_middle.mc_devappear where first_appear_hdfspar ='20161214' and hdfs_par='20161214') as tmp1
left join
(select '1' as id,count(distinct deviceid) as devicenum from src_huidu_mc.launch2 where hdfs_par ='20161214' ) as tmp2
on tmp1.id=tmp2.id
)
select newdevnum/devicenum from temp
缺陷:devicenum为0的时候无法计算
【3】第三版
with temp as(
select * from
(select '1' as id, count(distinct deviceid) as newdevnum from ana_fx_middle.mc_devappear where first_appear_hdfspar ='20161214' and hdfs_par='20161214') as tmp1
left join
(select '1' as id,count(distinct deviceid) as devicenum from src_huidu_mc.launch2 where hdfs_par ='20161214' ) as tmp2
on tmp1.id=tmp2.id
)
select (cast(newdevnum as bigint))/(if cast(devicenum as bigint)=0,1,cast(devicenum as bigint)) from temp
分享到:
相关推荐
计算sqlserver当前数据库中所有表占用空间大小,包括记录总数,磁盘字节数
Sql经纬度计算与C#经纬度计算 Sql经纬度计算是指使用SQL语言来计算两个经纬度之间的距离,而C#经纬度计算则是使用C#语言来实现同样的功能。以下是对Sql经纬度计算和C#经纬度计算的详细介绍: Sql经纬度计算: 在...
SQLServer 根据生日计算年龄
根据 “出生日期” 使用 SQL 语句计算实足年龄。
浅谈Linq to sql 的多表关联与动态条件查询 Linq to sql 是一种强大的数据查询语言,它可以帮助开发者快速、高效地访问和操作数据库数据。在本文中,我们将讨论 Linq to sql 的多表关联和动态条件查询这两个重要的...
### 大数据实时计算Flink SQL解密 #### 背景 在2018年的第九届中国数据库技术大会上,来自阿里巴巴集团的伍翀(花名:云邪)进行了主题为“大数据实时计算Flink SQL解密”的分享。伍翀拥有北京理工大学硕士学位,并...
根据给定的标题、描述及部分SQL代码内容,本文将详细介绍如何使用SQL处理多人多次开工情况下工时分摊的问题,并探讨其应用场景与实现原理。 ### 一、问题背景 在某些生产环境中,可能存在多名员工在同一时间段内在...
该算法的提出是为了解决直接将现有的多表连接优化算法应用到Flink上所带来的两个问题:一是现有算法不能充分发挥Flink基于线程的轻量级计算模型的性能优势;二是连接算法需要shuffle的数据量过大。 为解决这两个...
SQLSERVER计算年龄(岁月天),可以精确到岁,月,几月几天。
sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离
### SQL Server中的日期计算方法详解 在SQL Server中进行日期计算是数据库操作中常见的需求之一。本文将深入探讨SQL ...熟练掌握这两个函数的使用方法,能够大大提高开发效率,解决实际业务场景中的日期计算问题。
一旦作业创建并启用,SQL Server代理将按照设定的计划自动执行查询,计算并更新`HOUR_AVG`表中的数据。 请注意,这个方案可以根据实际需求进行调整。例如,如果你想计算其他时间段的平均值,只需更改`DATEDIFF`中的...
在探讨SQL Server中进行日期计算的方法之前,我们必须了解SQL Server中处理日期和时间的基本函数:DATEDIFF和DATEADD。这两个函数在实际应用中非常常用,可以帮助我们得到两个日期间的时间间隔以及通过已知时间间隔...
### SQL工作日计算,只排除周末 在数据库管理和数据分析领域,准确地计算两个日期之间的有效工作日数量是一项非常实用的功能,特别是在需要排除周末(通常指周六和周日)的情况下。这种计算方法对于财务报告、项目...
sql 语句 根据身份证号计算年龄,oracl数据库可以直接运行
在sqlserver中采用存储过程或函数计算年龄/周岁
- 问题2和5涉及到多表查询和ALTER TABLE语句,正确答案是D和B,WHERE子句用于指定条件,ALTER TABLE用于添加字段。 - 问题3和6考查子查询和更新操作,EXISTS子句用于检查子查询是否返回行,UPDATE语句用于更新表中...
在SQL(Structured Query Language)中,多表关联查询是数据操作的核心部分,它允许我们从多个相关表中获取数据。本篇文章将详细讲解SQL中的左外连接、右外连接以及嵌套查询,帮助你深入理解这些重要概念。 一、左...
SQL 日期计算包括时间差 SQL Server 中的日期计算是非常重要的,许多业务需求都需要计算日期之间的差值。本文将详细介绍如何使用 DATEADD 和 DATEDIFF 函数来计算日期,包括计算本月的第一天、本月的最后一天、本...