首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库应用技术系列第一讲 创建数据库和表

(2)nvarchar[(n)]:nvarchar[(n)]为最多包含n个字符可变长度Unicode字符型数据,n值在1~4 000,默认为1。长度是所输入字符个数两倍。...(2)ntext类型:可表示最大长度为230-1个Unicode字符,其数据存储长度是实际字符个数两倍(以字节为单位)。 二进制型 (1)binary [(n) ]:固定长度n个字节二进制数据。...(6)hierarchyid:可表示层次结构中位置。 4 计算 计算由可以使用同一表中其它表达式计算得来。...该表达式可以是非计算列名、常量、函数、变量, 也可以是用一个或多个运算符连接这些元素任意组合。 表达式不能为子查询。...”两,出生日期必须大于1980年1月1日,并命名CHECK约束。

1.5K20

Power BI 人力资源应用:动态计算年龄

假设我们想查看30岁以下员工数量,通常我们可能导出人力系统中员工信息,然后新建一,如下计算: 但这有一个问题,此处年龄是静态截止到现在年龄,如果我们想动态查看不同年份30岁以下员工数量,例如如下...: 请注意这个动画中两个信息,首先每个人年龄会随着年份变化而自动变化。...或者,我们可能还需要按照年份查看30岁以下员工趋势,准备各个年份节点HR数据再汇总会显然过于冗余。 那么,有没有更好办法实现?其实在Power BI中实现该功能只要将年龄从转换为度量值即可。...首先,将数据准备好,员工信息可从公司系统导出,日期表按照以下函数新建: 日期表 = CALENDAR(DATE(2015,1,1),DATE(2019,12,31)) 日期表与员工信息表之间不要建立关系...然后新建年龄度量值(不是计算): 年龄 = MAX('日期表'[年])-MAX('员工信息'[出生年份]) 接着使用度量值计算30岁以下员工数量: 30岁以下员工数量 = CALCULATE ( [员工数量

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

手写HashMap,快手面试官直呼内行!

但是,这个整数肯定是要经过处理,上面几种方法里直接定址法可以排除,因为我们不可能建那么大桶数组。 而且我们最后计算出来地址,尽可能要在桶数组长度范围之内,所以我们选择除留取余法。...哈希冲突 理想情况,是每个数据元素经过哈希函数计算,落在它独属桶数组位置。 但是现实通常不如人意,我们空间是有限,设计再好哈希函数也不能完全避免哈希冲突。...所谓哈希冲突,就是不同key经过哈希函数计算,落到了同一个下标。...既然有了冲突,就得想办法解决冲突,常见解决哈希冲突办法有: 链地址法 也叫拉链法,看起来,像在桶数组上再拉一个链表出来,把发生哈希冲突元素放到一个链表里,查找时候,从前往后遍历链表,找到对应key...,这里我省去了有没有成链表判断,直接查找链表。

41230

1000倍!ClickHouse存储A股数据实践

虽然MySQL优化技巧足够写一本书,但这些都需要交给专业DB工程师去做,量化打工人没有能力更没有时间倒腾这些。那有没有省时省力,高效存储股票行情数据解决办法呢。...分析场景中往往需要读大量行但是少数几个。在行存模式下,数据按行连续存储,不参与计算在IO时也要全部读出,读取时间严重超时。而存模式下,只需要读取参与计算即可,极大加速了查询。 ? ?...同一数据属于同一类型,节省了大量存储空间,降低了存储成本,从磁盘中读取相应数据耗时更短。 所以列式存储相对于行式存储优点总结起来:查得快,读快。 ?...导入数据 股票日度行情数据存ClickHouse表设计 只存储股票上市期间价格数据(大于等于上市日期,小于退市日期) 上市期间每个交易日都存,如果没交易,则价格成交量及成交金额等都存为-1(-1代表空值...ORDER BY表示对某几列数据进行排序,比如这里对股票代码和日期进行排序,ORDER BY也会被设置为索引。

3K30

Excel实战技巧99:5个简单有用条件格式技巧

图6 技巧4:突出显示下周日期 假设你正在Excel中跟踪项目计划。有很多截止日期,并希望立即查看下周有哪些截止日期,可以使用条件格式设置规则相对日期功能来做到这一点。 ? 图7 1....选择日期。 2. 单击“条件格式——突出显示单元格规则——发生日期…”。 3. 选择想要期间。 4. 应用想要格式。 5. 完成。...如果要突出显示指定日期期间整行,则使用基于公式规则,例如公式: =AND(D4>TODAY(), 技巧5:在同一单元格中同时显示数据条和图标 数据条很好,图标也很好,他们在一起更好。...想要在数据条达到目标时(例如100%)显示一个额外图标吗?如下图8所示。 ? 图8 要将它们放在同一个单元格中, 1. 添加数据条规则。 2....将“数据条”最大值设置为目标值两倍,因此2为100%,如下图9所示。 ? 图9 3. 添加图标规则。将图标设置为仅在值为100%时显示,在其他情况下不显示任何单元格图标,如下图10所示。

4K20

7步搞定数据清洗-Python数据清洗指南

字段分别代表什么意义 字段之间关系是什么?可以用做什么分析?或者说能否满足了对分析要求? 有没有缺失值;如果有的话,缺失值多不多? 现有数据里面有没有脏数据?...日期调整前(为求简便这里用已经剔除分秒,剔除办法后面在格式一致化空格分割再详细说) #数据类型转换:字符串转换为日期 #errors='coerce' 如果原始数据不符合日期格式,转换后值为空值...1) 以业务知识或经验推测(默认值)填充缺失值 2) 以同一指标的计算结果(均值、中位数、众数等)填充缺失值 3) 用相邻值填充缺失值 4) 以不同指标的计算结果填充缺失值 去除缺失值知识点: DataFrame.fillna...如果想了解更多 fillna() 详细信息参考 pandas.DataFrame.fillna pandas.pydata.org 2) 以同一指标的计算结果(均值、中位数、众数等)填充缺失值 平均值...填充后 4) 以不同指标的计算结果填充缺失值 关于这种方法年龄字段缺失,但是有屏蔽后六位身份证号可以推算具体年龄是多少。

4.4K20

数据结构之哈希表

但是如果要设计一个“工业级”哈希函数还是比较难,对于一个通用数据结构,我们需要考虑不同数据类型:字符串、浮点数、日期等以及不同数据格式:身份证号、单词、车牌号等,对于这种不同情况如何得到能用于哈希计算依据...,因为我们之前也说了,在真实情况下几乎无法找到一个完美的无冲突函数,即便能找到,付出时间成本、计算成本也是很大,所以针对散冲突问题,我们需要通过其他途径来解决。...由此,我们可以得出一个结论:hashCode 相等不一定是同一个对象,hashCode 和 equals 都相等情况下才能认为是同一个对象, 而 equals 相等时 hashCode 必然相等。...开放寻址法核心思想是,如果出现了散冲突,我们就重新探测一个空闲位置,将其插入。...你可能会有疑问,每次扩缩容都是原来两倍,那么 capacity 不就无法保持是一个素数了吗?是的,如果只是简单设置为两倍,就无法让 capacity 保持是一个素数,甚至不会是一个对取模友好数。

67830

技巧—新建日期

PowerBI中最常用表是什么? 毫无疑问,日期表! 不同行业分析,维度表有类别之分,数据表有指标计算之别。但当谈到日期时,基本是一致。而且日期表也是我们使用时间智能前提。 ?...2) PowerQuery生成,利用编辑查询器中添加日期功能(这是以往我比较喜欢方式,在日历表使用文章中曾介绍过) ? 3) 复制前人写过PowerQueryM代码。...Addcolumns含义是在生成日期表基础上添加,这与使用Excel制表逻辑是一样。...但我认为日期表即使跨度十年也就是3650行,用写两倍代码来提升0.0X秒计算速度,并没有什么吸引力。如果说在速度和简单上来找一个平衡,我更倾向于简单。(当然,这只是针对日期表这个例子。...注意到在建立[年月]时,我使用方法是Year([Date])*100+Month([Date])数字计算,而不是利用Format函数生成“年份月份”文本格式。

1.6K41

3分钟学会Excel“自主学习”

1 信息拆分 下面表格数据,我们是不是经常遇到呢?我们需要将信息拆分成两,更方便我们进行信息收集。Excel分列功能就能够完成目标,但是因为名字长度不同,分列功能出现了短板。...接下来是成绩,与“姓名”同理。我们需要注意是,姓名列和成绩是无法同时进行多填充。 ? 2 如何从身份证中快速提取出生日期 我们都知道,身份证第七个数字到第15个数字中间数据为出生日期。...从身份证中提取出生日期,以得到用户年龄是很常见问题。如下表中,我们有用户身份证号,现在你需求是:需要从身份证中提取出生日期,你可能会想到分列或者MID函数,那有没有一键解决办法呢?...3 如何快速合并分离信息 快捷键“ctrl+E”除了拆分信息,身份证提取出生日期,还可以进行信息合并。比如我们看如下信息,想要进行第一和第二合并,并用符号“-”合并,在第三进行填写。...,并非excel形式日期格式,对于这样日期格式,不可以采用"DATE"等日期计算函数,所以我们需要对其修改格式。

78810

这样Power BI周分析你见过吗?

按周进行分析,首先需要创建一个日期表(关于日期表创建多种方式可参考这篇文章:Power BI创建日期几种方式概览),或者在已有日期表中新建“WEEKDAY”和“WEEKNUM”: ?...")" 然后在把两合为一,或者干脆直接一搞定也可以。...不过,细心你已经发现了,排序是乱,并不是按照周一到周日或者周日到周六顺序排。很明显,此时要排序,结果发现是不支持直接排序: ? 所以我们需要用到一个初学者经常会问【按排序】了。...选中“周几”,点击按排序,按WEEKDAY进行排列,是不是符合你要求了: ? 再经过一些恰当修饰,就得到了一个比较美观按周展示矩阵了: ?...自动调整列宽对于绝大部分矩阵来说是很必要,否则可能会出现领导打开报告看到是这样一幅画面: ? 那有没有办法既让矩阵自动调整列宽,又让首列自动分为两行呢? 答案是肯定: ? 如何实现呢?

3.2K41

DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题

第r行,第i能不能放棋子:用数组dg udg cor 分别表示:点对应两个斜线以及列上是否有皇后。...dg[i + r] 表示 r行i处,所在对角线上有没有棋子,udg[n - i + r]表示 r行i处,所在反对角线上有没有棋子,cor[i]表示第i列上有没有棋子。...如果 r行i对角线,反对角线上都没有棋子,即!cor[i] && !dg[i + r] && !udg[n - i + r]为真,则代表 r行i处可以放棋子。...dg[i+r] 和udg[r-i+n]理解,对角线y1=x1+b1,y2=-x2+b2,如果在不同行,但在同一对角线,经过方程计算得到截距都是一样,那么b1=y1-x1,b2=y2+x2,同时为了防止...static boolean []dg=new boolean[N*2]; //判断对角线是否有皇后,n * n矩阵,存在r + i也就是行加上列求截距操作,必须开两倍大否则就爆了

11110

神速Hash

面试官: 聊聊HashMap底层 理解HashMap底层,首先应该理解Hash函数,今天我们聊聊Hash函数出现冲突解决办法(此故事为连载形式,若没看上篇,可点击此处神速Hash阅读) 链地址法...“在存储时候,如果多个元素被Hash到同一位置,那么就加入到该位置所指向链表中,如果该位置没有元素,则为null(指向空)”,何大臣解释道 “那个 1 和 6 谁先存放进来呢?”...,何大人问道 “你看啊,假设咱们Hash函数设计非常好,能够将元素均匀Hash(散)开来,但是当我们实际存入值越来越多时候,这个链表也势必越来越长,那当我们进行查找时候,势必就会遍历链表,效率也就越来越慢...,何大臣问道 “现在只能扩大数组长度大约为原来两倍 然后选取一个相关Hash函数(比如之前使用 key % m,现在只改变一下m值) 将旧Hash表中所有的元素通过新Hash函数计算出新...“这里数组就扩大了近两倍,由于要大小要选素数,那就选原数组大小两倍第一个素数7,旧Hash表和新Hash表采用了不同Hash函数,但相关,只是m取值变了”李大臣解释道 “哦,这样做确实是一种办法

73860

Mysql数据类型

我们要把现实世界中各种信息转换成计算机能理解东西,这些转换后信息就形成了数据。例 如,某人出生日期是“1987年5月23日”,他身高是170厘米,等等。...关键就在于:数值型87398143是要参与计算,比如它是金融中一个货款总额;而字符型87398143是不 参与计算,只是表示电话号码,这样还有街道号码、门牌号码等等,它们都不参与计算。 ...对于浮点值,DOUBLE占用FLOAT两倍空间。除非特别需要高精 度或范围极大值,一般应使用只用一半存储代价FLOAT型来表示数据。 在定义整型时,可以指定可选显示尺寸M。...2.3日期时间类型 MySQL 提供了几种时间值类型,它们分别是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。...有Chinese、Maths和English三个整数类型。还有个Birthday日期类型

2.4K30

这个烂大街用户消费分析案例,我用了点不一样pandas技巧

: 清楚数据颗粒 缺失值处理 正确字段类型 注意数据颗粒为"每天每一笔订单信息" 因此,完全有可能出现同一同一个用户多笔记录: ---- 现在看看数据表基本信息: 上方红框信息,表明共 6万多接近...7万行数据 下方红框信息,表明4个没有缺失数据 绿色框,看到 user_id 与 date 类型不对 转换类型逻辑我写在加载数据函数中: 行6:使用 pd.to_datetime 把非日期类型字段转为日期...上面的过程展示了 pandas 灵活和便捷。但是有没有发现这些代码比较难以表达业务。...这也太傻了 如果你曾经使用过 BI 软件的话,你会发现这些软件使用思维与我们上述代码思维不太一样。 他们首先需要我们定义各种度量,一般是基于数据源指标一种计算。...对象,其中参数分别是列名与统计方法 调用如下: 注意此时我们需要解包操作,把其中定义字典解开为参数传入 ---- 现在可以一次性定义需要用到指标度量: 其次把指标计算也定义出来: 有些计算如果觉得不希望每次统计都重新计算

1.6K50

张嘴,深入浅出一下JavaHashMap

我们通常用一串指纹来映射某一个人,别小瞧手指头那么大点指纹,在你所处范围内很难找出第二个和你相同(人算法也好厉害,有没有?)。...在Java中,String字符串计算方法如下: public int hashCode() { int h = hash; if (h == 0 && value.length...最容易想到解决办法就是:当关键字key2值value与key1值value出现冲突时,以value为基础,产生另一个散值value1,如果value1与value不再冲突,则将value1...依照这个办法,总会找到不冲突那个。...当HashMap中条目数超出了负载因子与当前容量乘积时,则要对HashMap扩容,增加大约两倍桶数。 通常,默认负载因子 (0.75) 是时间和空间成本上一种折衷。

56930

MLK | 特征工程系统化干货笔记+代码了解一下(上)

3)定距(interval) 定距的话,就是变量值之间可以做加减法计算,也就是可以引入均值、方差之类名词了,而且能够画图也多了,包括先前那些,还包括了直方图。 ?...值得注意是,温度一般不归入定比,而是定距,没有说20度是10度两倍这种说法。 ? 最后把上面的内容总结一下: ? 3....Step2: 处理数据缺失问题 缺失处理办法有好多种,但最为常用作者讲到有两种:填充和删除。...当然,删除之后,我们还需要看看数据分布,对比目标占比、特征分布与先前是否存在明显差异,如果是的话,建议不要使用这种办法。 ?...,不同于上面的两种方法(针对),对行进行处理是为了保证每行向量长度一样(也就是单位范围,unit norm),有L1、L2范数。

67410

从容应对复杂指标的Power BI度量值书写:以教培行业续班为例

考核教师方式是以班为单位,比如尼古拉斯·赵四老师带了6个班,这6个班是分别计算续班情况,然后进行考核。 这里只考虑是对于单个教师续班,这个计算过程与整个学校续班情况分析一定是不同。...相对而言,学校续班情况要好计算一些。 好了,背景说明就到这里了。...,并将日期表和数据表一对多关联起来; 建立日期方式有很多种,我们可以任选一种生成: Power BI创建日期几种方式概览 我们要注意:在使用同一日期情况下,不可能两个切片器都是日期日期...,也不能使用日期日期和数据表日期,因为这两个已经关联了,导致结果就是筛选为空: 因此,我们需要两张日期表: 一张主日期表A用来筛选出寒假时间范围:2021年1月19日-2月16日; 一张次日期表...前两篇文章其实就是为了这里服务,有些时候需要进行一些明细展示,却又不想全部暴露内容,即可使用这些办法: 从信息安全到如何在DAX中实现for循环 Power Query中文本函数Text.Start

73710

PowerBI中Cosplay

从技术角度来讲,就是一个维度表与同一个事实表不同之间建立关系。比方说你有一张日期表,还有一张事实表,事实表中有多个时间,你想用这张日期表去关联多个不同日期。...一旦建立了这个模型,就意味着日期date和销售表Invoice Date发票日期建立了关联,显示为实线;而Delivery Date发货日期关系只能是虚线状态,表明未激活。...常规解决思路 有两种常用解决办法,分别说一下: 1.多个日期表 ? 可以通过建立两个或多个日期表,每个日期表分别和事实表相关日期进行关联,以达到切换目的。...如果只有两个日期倒还好,如果模型也比较简单也还好。如果事实表中一旦有多个日期,或者还有其他表需要关联日期表,那么模型搭建将是一件非常痛苦事情。...Date], 'Date'[Date])) 不过,与建立多个日期表类似,如果是只有两个日期表或者度量值不多情况下,这种办法还是比较好用,但是之后随着度量值逐渐增多,你不得不每次同时建立好几个度量值

1.1K20

看动画学算法之:hashtable

因为使用了散算法,将长数据集映射成了短数据集,所以在插入时候就可能产生冲突,根据冲突解决办法不同又可以分为线性探测,二次探测,双倍散和分离链接等冲突解决方法。...有没有简单点办法呢? 考虑一下字符串中字符集合其实是有限,假如都是使用ASCII字符,那么我们可以构建一个256长度数组一次遍历即可。...hash问题 有利就有弊,虽然使用散函数可以将大数据集映射成为小数据集,但是散函数可能且很可能将不同键映射到同一个整数槽中,即多对一映射而不是一对一映射。...好了,回到我们hash冲突,我们需要构建一个好hash函数来尽量减少数据冲突。 什么是一个好函数呢? 能够快速计算,即其时间复杂度是O(1)。...对于(标准)二次探测冲突解决方法,当哈希表α> 0.5时,插入可能失败。 如果发生这种情况,我们可以重新散(rehash)。 我们用一个新函数构建另一个大约两倍散列表。

78420

干货笔记,数据仓库工具箱

类型1:改写属性值; 类型2:添加维度行; 类型3:添加维度。 第二种类型最常用。 12、快变维度处理办法:将这些迅速变化属性分裂成一个或者多个单独维度。(第四章) 13、维度角色模仿。...在同一个维度表上通过视图形式建立多个维度。在实际运用中,很多OLAP工具都支持在同一个维度表上建多个维度,而并不需要建立视图。...国别历法处理办法,做成日期维度支架。 29、多个时区日期处理办法,增加维度。(第十章) 30、多值维度解决方案。所谓多值维度是指一个事实表对应多个值维度,比如,住院结算事实表拥有多个疾病。...6、将可计算得值作为事实原因:消除用户出错可能性,一致引用它。例如,利润=销售额-成本额,将利润作为一个事实而不是通过展现工具进行计算得到。 7、非可加性数据项尽量不要放到事实表中。...累计快照 不确定跨度,一般短期 每个生命期一行 插入更新 行为发生时更新 关键环节多日期 生命周期性能 19、至今为止事实:应该计算出来,而不是保存在事实表中。

1K30
领券