对 order by random() 的理解

简介:

开始

order by random() ,相当于不是根据某个字段来排序,而是乱序。这个方法可以帮助制造混乱分布的测试数据。

复制代码
postgres=# \d employee
          Table "public.employee"
 Column |         Type          | Modifiers 
--------+-----------------------+-----------
 id     | integer               | 
 name   | character varying(20) | 
 deptno | integer               | 
 age    | integer               | 
Indexes:
    "idx_id_dept" btree (id, deptno)

postgres=# select name, age from employee order by name limit 5;
 name  | age 
-------+-----
 gao   |  30
 jian  |  35
 nam04 |  25
 nam05 |  40
 nam06 |  32
(5 rows)

postgres=# select name, age from employee order by age limit 5;
 name  | age 
-------+-----
 nam10 |  25
 nam16 |  25
 nam04 |  25
 nam28 |  25
 nam22 |  25
(5 rows)

postgres=# select name, age from employee order by random() limit 5;
  name  | age 
--------+-----
 nam560 |  40
 nam758 |  40
 nam635 |  40
 nam307 |  25
 nam708 |  30
(5 rows)

postgres=# select name, age from employee order by random() limit 5;
  name  | age 
--------+-----
 nam490 |  25
 nam444 |  32
 nam943 |  25
 nam143 |  35
 nam690 |  32
(5 rows)

postgres=# select name, age from employee order by 0.1 limit 5;
ERROR:  non-integer constant in ORDER BY
LINE 1: select name, age from employee order by 0.1 limit 5;
                                                ^
postgres=# select name, age from employee order by random() limit 5;
  name  | age 
--------+-----
 nam214 |  25
 nam474 |  32
 nam175 |  25
 nam22  |  25
 nam210 |  32
(5 rows)

postgres=# select name, age from employee order by random() limit 5;
  name  | age 
--------+-----
 nam390 |  30
 nam626 |  35
 nam342 |  30
 nam620 |  35
 nam674 |  35
(5 rows)

postgres=# select name, age from employee order by random() limit 5;
  name  | age 
--------+-----
 nam242 |  35
 nam847 |  30
 nam509 |  35
 nam945 |  32
 nam721 |  25
(5 rows)

postgres=# select name, age from employee order by random() limit 5;
  name  | age 
--------+-----
 nam165 |  32
 nam956 |  40
 nam446 |  35
 nam65  |  40
 nam291 |  30
(5 rows)

postgres=# 
复制代码
目录
相关文章
|
人工智能 前端开发 Java
autojs非常见函数1
牙叔教程 简单易懂
2357 0
|
4月前
|
存储 数据采集 JSON
抖音直播间采集截流软件,抖音直播间采集匿名信息UID,评论红心点赞留言版
这是一个抖音直播数据爬虫项目,包含DouyinLiveCrawler和DataProcessor两个核心类。前者负责通过HTTP和WebSocket协议采集直播间弹幕、点赞等实时数据
|
监控 JavaScript 前端开发
autojs,监控屏幕以及获取所有应用
autojs,监控屏幕以及获取所有应用
|
开发工具 Android开发 数据安全/隐私保护
12. 【Android教程】绝对布局 AbsoluteLayout
12. 【Android教程】绝对布局 AbsoluteLayout
229 0
|
JavaScript 前端开发
autox.js如何打印日志?
autox.js如何打印日志?
[ERROR] Malformed \uxxxx encoding.报错解决
[ERROR] Malformed \uxxxx encoding.报错解决
628 0
Crypto-JS——Uncaught Error: Malformed UTF-8 data
Crypto-JS——Uncaught Error: Malformed UTF-8 data
1064 0
|
存储 缓存 JavaScript
Flutter笔记:关于WebView插件的用法(上)
Flutter笔记:关于WebView插件的用法(上)
3725 5
|
缓存 关系型数据库 MySQL
如何优化MySQL 8.0的性能?
【6月更文挑战第14天】如何优化MySQL 8.0的性能?
1698 5
|
关系型数据库 MySQL Windows
mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法
本文讲解:mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法