zoukankan      html  css  js  c++  java
  • 对 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=# 

    [作者:技术者高健@博客园  mail: luckyjackgao@gmail.com ]

    结束

  • 相关阅读:
    theme-windowAnimationStyle 动画设置
    Perl中的正则表达式
    repo sync下载脚本
    Virtual Box创建共享目录
    ubuntu下安装jdk
    adb logcat 命令
    如何提高上传带宽
    Ubuntu安装dos2unix工具
    Android打Path的方法
    Ubuntu快捷键
  • 原文地址:https://www.cnblogs.com/gaojian/p/2760767.html
Copyright © 2011-2022 走看看