首页 > 数据库 >用postgresql做抽样查询

用postgresql做抽样查询

时间:2024-04-10 18:13:23浏览次数:26  
标签:抽样 postgresql defect 08 00 查询 2020 tb select

9.5之前需要写函数,暂不考虑,下面以tablesample方法为主

方式一:

在数据量较小的情况下使用

select * from tb_defect order by random() limit 100

缺点是没办法再排序,而且是全表扫描,性能较差

方式二:

select * from tb_defect tablesample system(0.01);

system抽样方式是随机抽取表上的数据块的数据,可能返回0条,可能是抽取到了一个没有数据的数据块

方式三:

select * from tb_defect tablesample bernoulli(0.1);

BERNOULLI抽样方式,是基于数据行的,每次返回的数量相差不多,但也不保证每次查询出来的数据行数一样,0.1并不是严格按总条数*0.1,而是按伯努力离散分布,比如我测试数据2700条,查出来可能是3-5条

select * from tb_defect  tablesample bernoulli(0.5) order by "create_time";

可以排序,但并不是均匀分布的

2020-01-04 00:00:00+08:00 2020-03-09 00:00:00+08:00 2020-03-18 00:00:00+08:00 2020-03-22 00:00:00+08:00 2020-05-10 00:00:00+08:00 2020-05-22 00:00:00+08:00 2020-06-11 00:00:00+08:00 2020-06-16 00:00:00+08:00 2020-06-29 00:00:00+08:00 2020-07-29 00:00:00+08:00 2020-07-30 00:00:00+08:00 2020-09-02 00:00:00+08:00 2020-09-16 00:00:00+08:00 2020-09-17 00:00:00+08:00

方式四:

如果有时间字段或id,主要对物联设备数据,每秒上报数据,查询时每隔三分钟取一条数据,

select * from tb_defect  where mod(cast(substring("create_time",9,2)  as integer),3)=0

标签:抽样,postgresql,defect,08,00,查询,2020,tb,select
From: https://www.cnblogs.com/bigleft/p/18127115

相关文章

  • postgresql中查询COMMENT注释的语句
    tb_car表中DDL语句中有COMMENTCOMMENTONCOLUMNpublic.tb_car.car_idIS'主键';COMMENTONCOLUMNpublic.tb_car.car_index_codeIS'车辆编码';COMMENTONCOLUMNpublic.tb_car.plate_noIS'车牌号码';用如下语句查询SELECTcol.table_name,col.column_na......
  • MySQL多表联合查询&聚合函数应用实例
     DDL——学生表——成绩表CREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`......
  • SQL SERVER 从入门到精通 第5版 第二篇 第7章 SQL数据查询基础 读书笔记
     第7章SQL数据查询基础 SELECT检索数据>.SELECT语句是SQL语句中功能最强大,也是最复杂的语句,所以我决定略过.>.WITH子句指定临时命名的结果集(非临时表),这些结果集称为公用表表达式WITHtemp_nameAS(--在这里定义临时结果集的查询......
  • MySQL分组查询以及having筛选
    DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULL,`userName`varchar(20)DEFAULTNULL,`pwd`varchar(36)DEFAULTNULL,`phone`varchar(11)DEFAULTNULL,`age`tinyint(......
  • MySQL-6.表的高级查询(多表查询、子查询、表复制、合并查询、表外连接)
    6.1 多表查询基于两个或以上表的查询,默认从表1取出一行,与表2的每一行组合,返回的记录数为表1×表2,默认返回的结果为笛卡尔集,需写出正确的WHERE条件进行筛选。多表查询的条件不能少于表的个数-1,否则会出现笛卡尔集。指定显示某个表的列:表.列#显示雇员名,雇员工资及所在......
  • openGauss数据与PostgreSQL的差异对比
    openGauss数据与PostgreSQL的差异对比前言openGauss数据库已经发布2.0.1版本了,中启乘数科技是一家专业的专注于极致性能的数据库服务提供商,所以也关注openGauss数据库的特性。因为openGauss是从PostgreSQL发展出来的,所以我们详细讲解对比一下openGauss与原生Po......
  • 20240410sql查询学习_1
    需求:查看合同信息表里面有多少合同编号是重复的SELECT合同编号,COUNT(*)FROM合同信息表GROUPBY合同编号HAVINGCOUNT(*)>1;结果:数量太多需求:列数太多,怎样看具体有多少个SELECTCOUNT(*)AStotalFROM(SELECT合同编号,COUNT(*)ASduplicate_count......
  • (二)PostgreSQL常用的配置文件
    PostgreSQL常用的配置文件1postgresql.conf参数文件postgresql.conf是PostgreSQL数据库的主要配置文件,用于控制数据库实例的行为和特性,一般在$PGDATA目录下。这个文件包括了众多的配置选项,比如内存使用限制、连接设置、日志记录规则等。根据系统资源和应用需求对这些......
  • mysql中将where条件中过滤掉的group by分组后查询无数据的行进行补0
    背景mysql经常会用到groupBy来进行分组查询,但也经常会遇到一个问题,就是当有where条件时,被where条件过滤的数据不显示了。例如我有一组数据:我想查询创建时间大于某一范围的spu的分组下的sku的数量正常的sql查出的话,假如不存在相关记录SELECTproduct_id,count(*)countF......
  • MongoDB的一次奇妙查询
    这段时间遇到了一个业务需求,我有一些关于书籍的文档数据存储在MongoDB数据中,然后在修复数据之后,需要用一个查询去验证更新是否成功。书籍数据大概长这个样子:{"books":[{"name":"UbuntuMeta","sku_id":"101","price":30.5},{&q......