作为自己的周总结,平时遇到的问题,以及一不小心踩的坑,记录下来自己当复习: 表单验证 表单验证,两个参数中至少需要一个(2个以上): public function rules() {...where 多个查询条件示例: User::find()->where(['and', ['xxx' => 0, 'yyy' => 2], ['>', 'zzz', $time]]); 查询的时候...FROM `post_comment` WHERE `status`=1 ORDER BY `created_at` DESC) `tmpA` GROUP BY `post_id` sql计算字段中相同值重复次数...Yii::app()->request->url 只想获取url中的参数部分: # r=news&id=1 Yii::$app->getRequest()->queryString 获取某个参数的值,...OrderSearch extends Order { public $customer_name; //<=====就是加在这里 } 第二步: 修改OrderSearch中的search函数
在Oracle 11g中,已经添加APPROX_COUNT_DISTINCT函数,但相关文档中没有体现,用于提高使用DBMS_STATS包收集统计信息时计算不同值(NDV)数量的速度。...基本用法 性能 基本用法 在以前的数据库版本中,如果我们想要执行不同值的计数,我们可能会做如下。...SQL> 此查询为我们提供了基于Oracle的读一致性模型的不同值的确切计数。 因此,我们可以看到所有提交的数据,以及当前会话提交的任何未提交的更改。...相比之下,新的APPROX_COUNT_DISTINCT函数不提供准确的结果,但应该给出“可以忽略不计的精确结果”。...SQL> 该函数也可以用作组查询的一部分。
上一个章节学习了数学类的函数,本章节想学习下分析类函数。下面就随着我一起来学习下这个内置函数吧,有解释不到之处,还望批评指正。聚合函数对一组值进行计算,并返回单个值。...在Oracle中,常见的聚合函数有:个数、和、平均数、最大值、最小值等。聚合函数通常是我们分析数据或者统计数据时较为常用。...2 聚合统计函数计数--COUNT这个函数必须常用,可以说每一个项目都不可以缺少的一个函数,却少了这个函数都感觉写的代码没灵魂了。计数函数是计算命中的行数,常常被用作聚合或分析函数。...COUNT(DISTINCT column):计算某一列中不同值的数量,它会跳过重复的值,只计算不同的值,由于DISTINCT会使用排序,所以性能较慢。...【定义】COUNT(DISTINCT column):计算列中唯一值的数量。【使用场景】DISTINCT可以与ORDER BY子句一起使用,以对结果进行排序。例如多次考试,我们只会获取考试通过的一次。
低效率的DAX会减慢处理速度,阻塞高级容量,增加等待时间,并妨碍刷新和报告加载时间。 在优化DAX之前清除DAX缓存 缓存由内部VertiPaq查询产生。 从DAX Studio中清除缓存。...始终使用DISTINCT()和VALUES()函数 DISTINCT():不返回由于完整性冲突而添加的空白。仅当DISTINCT()函数是原始数据的一部分时,才包含空格。...DISTINCT()和VALUES()函数不同: 在整个报表中,保持DISTINCT()和VALUES()函数的用法一致。 如果没有空白值,Power BI建议使用VALUES()函数。...根据列值使用正确的数据类型 如果一列中只有两个不同的值,请检查是否可以将其转换为布尔数据类型(真/假)。 当您有大量的行时,这可以加快处理速度。...使用COUNTROWS而不是COUNT: 使用COUNT函数对列值进行计数,或者我们可以使用COUNTROWS函数对表行进 行计数。只要计数的列不包含空白,这两个函数将达到相同的结果。
DISTINCT - 可选-一个DISTINCT子句,指定COUNT返回表达式的不同(唯一)值的计数。 不能与流字段一起使用。...COUNT(*)以整数形式返回表中行数的计数。 COUNT(*)计数所有行,无论是否存在重复的字段值或NULL值。 COUNT可以在引用表或视图的SELECT查询或子查询中使用。...与所有聚合函数一样,COUNT(expression)可以接受一个可选的DISTINCT子句。 DISTINCT子句只计算那些具有不同(唯一)值的列。...什么是一个不同的值取决于字段的排序; 当字段具有默认的排序规则%SQLUPPER时,字母大小写不同的值将不作为不同的值计算。...COUNT(DISTINCT BY(col2) col1)计数不同的col2值的col1值; 但是,不同的col2值可以包含一个NULL作为不同的值。
将较大的表放在inner join操作符的右侧,可以提高查询效率,执行速度快,不容易出现计算内存溢出错误。...不仅会影响自己的产出速度,还会占用过多资源,影响整个集群的使用。...07 distinct与group by的区别「计数场景」 在去重计数场景中,我们经常应用count(distinct)来进行处理;有时也会先在内层通过group by聚合,然后再在外层计数count(...原理:distinct需要将col列中的全部内容都存储在一个内存中,可以理解为一个hash结构,key为col的值,最后计算hash结构中有多少个key即可得到结果。...如果我们只需要取几条探查一下表数据,通常通过limit限制查询的条数,而当where中除分区外没有其他过滤条件时,是不会生成Map/Reduce,数据即可输出,提升效率。
而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。...除了直接使用influxdb命令之外,还可使用函数,influxdb的函数大致分为aggregate,select和predict。...distinct:返回非null值的数据不相同数据计数。...influxdb支持很多常见和高级的聚合查询函数,可满足大多数场景需要,具体可参考 https://jasper-zhang1.gitbooks.io/influxdb/content/Query_language...不同的是,tag是有索引的而field没有(如果查询条件为tag则会扫描所有查询到的数据),对于mysql表的有索引列和无索引列。
SQL 中的去重计数 COUNT DISTINCT 一直比较慢。去重本质上是分组运算,需要把遍历过的分组字段值都保持住,用于后续的比对。结果集太大时,还要把数据写到硬盘上做缓存,性能低下。...SPL 代码 11:A2 中游标的 group 函数就是采用有序分组方式,归并相邻且相同的 user_id。group函数的@1 选项表示每组只取第一条记录,这样就不用建立分组子集了。...SQL 是这样:select count(distinct case when event_type = 1 then user_id end) as count1, count(distinct...SPL 代码 12:icount 是去重计数,加 @o 选项就是有序去重计数,也是只合并相邻且相同的值。...2、思考:是否遇到过去重或者去重计数比较慢的情况?是否可以用有序去重来提速?
聚合函数: SQL中提供的聚合函数可以用来统计、求和、求最值等等。...执行列、行计数(count): 标准格式 SELECT COUNT(计数规范>) FROM 其中,计数规范包括: - * :计数所有选择的行,包括NULL值; - ALL 列名:计数指定列的所有非空值行...,如果不写,默认为ALL; - DISTINCT 列名:计数指定列的唯一非空值行。...DISTINCT即去重,如果不加DISTINCT则结果为表行数——5。 返回列合计值(SUM): 注:sum只要ALL与DISTINCT两种计数规范,无*。...其他的例子均只对一张表进行操作,为非相关子查询。 需要注意的是相关子查询主查询执行一回,子查询就执行一回,十分耗费时间,尤其是当数据多的时候。
很简单,就是为了统计记录数 由SELECT返回 为了理解这个函数,让我们祭出 employee_tbl 表 ? ? ?...注意:由于 SQL 查询对大小写不敏感,所以在 WHERE 条件中,无论是写成 ZARA 还是 Zara,结果都是一样的 count(1),count(*),count(字段)区别 count(1)和count...执行效果: count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count()用时多了!...用1代表代码行,在统计结果的时候,不会忽略列值为NULL count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL...对于MyISAM表的COUNT()无需消耗太多资源,但对于Innodb,就没有这种元数据,CONUT(*)执行较慢。
分组计数(字段值不为 NULL 才进行计数) if (!...在读取数据时,min()、max() 用 group by 字段值作为分组前缀;count(distinct)、sum(distinct)、avg(distinct) 用 group by 字段值 +...聚合函数中的字段值作为分组前缀。...MySQL 把紧凑索引扫描中使用的顺序读取记录嵌入到松散索引扫描的逻辑里,当评估紧凑索引扫描成本比松散索引扫描低时,对于包含 distinct 关键字的聚合函数,就会用顺序读取记录代替跳着读取记录,并且在顺序读取记录的过程中完成记录去重...当松散索引扫描比紧凑索引扫描成本高时,min()、max() 会选择用紧凑索引扫描,MySQL 为 count(distinct)、sum(distinct)、avg(distinct) 引入松散索引扫描的变种
1、存储过程和函数的区别 存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。...16、Mysql查询是否区分大小写?...InnoDB,是MySQL的数据库引擎之一,它的特性是支持事务,并且采用多版本并发控制的方式来提高并发度,当一个事务全部完成,才会执行update.如果一段代码没有完成(及一个事务操作没有完成)它是不会...缺点是,innoDB的表执行起来速度较慢,但是安全! 19、Mysql如何优化DISTINCT? DISTINCT在所有列上转换为GROUP BY,并与ORDER BY子句结合使用。...The maximum legal display width is 255. 23、什么是通用SQL函数? CONCAT(A, B) - 连接两个字符串值以创建单个字符串输出。
目录 聚合函数 Count (Distinct) 聚合 HyperLogLog 列 估计 Top N 个项 基本操作 现实例子 百分位计算 限制下推 分布式表的视图 连接(Join) 共置连接 引用表连接...聚合函数 Citus 支持和并行化 PostgreSQL 支持的大多数聚合函数,包括自定义用户定义的聚合。...如果不是,Citus 对每个 worker 运行 select distinct 语句, 并将列表返回给 coordinator,从中获取最终计数。...请注意,当 worker 拥有更多 distinct 项时,传输此数据会变得更慢。...配置值启用计数不同的近似值。
因为非聚集索引不存放数据,而是有个指针指向数据,所以统计时消耗的资源更少,速度也更快。...因为innoDB引擎(OLTP联机事务处理),它不像MyISAM引擎(OLAP联机分析处理)那样内置了一个计数器,在count时,直接从计数器取数据。...innoDB必须全表扫描,而且会锁表(表级锁,不是行锁),当数据达到千万级别时,速度很慢,一个SQL就会让数据库挂掉。...右表的条件列一定要加上索引(主键、唯一索引、前缀索引等),最好能够使type达到range及以上(ref,eq_ref,const,system) 索引无法命中的情况: %字段% 使用or条件的字段 使用函数的字段...,比如字段 gender,这个的值就两个值male 和 female,如果使用索引反而会慢些,不使用索引会更快,这种情况不用担心 这个跟第上条类似,就是当你的一个索引,他的每个键对应多个值,
下面来开始今天的正文内容吧...回顾上篇上篇文章我们在介绍 Mysql count() 函数时,介绍了count(*) count(1) count(column) 在统计数据量时候的区别以及统计结果的不同...这里的 expr 可以是一个列名、一个常量值、一个算术表达式、一个函数调用等。当 expr 的结果不为 NULL 时,该行会被计入总数。...COUNT(DISTINCT expr)COUNT(DISTINCT expr) 是 SQL 中的一个函数,用于计算指定表达式(expr)不同(唯一)非 NULL 值的数量。...与 COUNT(expr) 不同,COUNT(expr) 计算的是所有非 NULL 值的数量,而 COUNT(DISTINCT expr) 只计算不同值的数量。...另外就是 COUNT(DISTINCT post_sort) 不会统计该列值为 NULL 的数据,比如这里去重统计 create_bySELECT COUNT(DISTINCT create_by) FROM
当有“每个”出现的时候,要想到《猴子 从零学会SQL》中讲过的用分组汇总来实现该业务问题。...按照各城市(也就是每个城市)分组 (group by),统计用户数(计数函数count,加上distinct去掉重复的用户id)、总费用(求和函数sum) select 城市,count(distinct...ARPU值符合分段区间并计数。...例如,ARPU值在(0,30)范围内计数为1 ,代码如下: select 城市,count(case when ARPU值>0 and ARPU值计数函数count)大于等于2条的就是重复记录(having 用户id >=2) select 用户id,count(用户id)from 用户套餐费用表
同时检索速度也越来越慢。...Bloom Filter 是一种空间效率很高的随机数据结构,Bloom filter 可以看做是对 bit-map 的扩展, 它的原理是: 当一个元素被加入集合时,通过 K 个 Hash 函数将这个元素映射成一个位阵列...它的优点是空间效率和查询时间都远远超过一般的算法,布隆过滤器存储空间和插入 / 查询时间都是常数O(k)。另外, 散列函数相互之间没有关系,方便由硬件并行实现。...我们很容易想到把位数组变成整数数组,每插入一个元素相应的计数器加 1, 这样删除元素时将计数器减掉就可以了。然而要保证安全地删除元素并非如此简单。首先我们必须保证删除的元素的确在布隆过滤器里面....错误率(false positive rate)、哈希函数个数以及BloomFilter位数组的大小,关于这三个值的最优配置算法,相关阅读中的文章有详细的说明。
直方图 当不同值的数量变得太大而无法将他们全部存储在数组时,系统开始使用直方图表示。直方图使用多个存储桶来存储值。存储桶的数量受相同的default_statistics_target参数限制。...2986429.当截止值不再桶边缘时,该桶的匹配分数是使用线性插值计算的。...数据类型比如integer或char(3)的字段宽度是固定的,但是当使用没有设置宽度的数据类型(例如text)时,值可能会因列而异。...列之间的功能依赖关系 当一列中的值(完全或部分)由另一列中的值确定时,并且在查询中存在引用两列的条件,则结果基数将被低估。...他们旁边的值表示函数依赖程度。从0(独立)到1(第2列中的值完全由第一列中的值定义) 不同值的多元数量 对于来自多列的值的不同组合数量的统计将显著提高GROUP BY对多列操作的基数。
4.2.4 SELECT 输出需要的字段 输出查询条件完成需要的字段! 4.2.5 HAVING 过滤 对查询结果进行再次过滤!...4.2.6 ORDER BY 数据排序 对查询结果进行排序! 4.2.7 LIMIT 限制数据个数 限制查询结果的输出条数!...4.3.2 count(distinct id) 和 count(distinct 1) distinct 不重复计数! 4.3.3 count(1) 计数表格!...4.3.4 count(id) 去 null 计数! 4.3.5 count(distinct id) 去 null 的不重复计数!...4.4 聚集函数 4.5.1 count 计数 4.5.2 sum 求和 4.5.3 max 最大值 4.5.4 min 最小值 4.5.5 avg 平均值 4.5.6 group_concat