CREATE TABLE onek_random (
unique1 int4,
unique2 int4,
two int4,
four int4,
ten int4,
twenty int4,
hundred int4,
thousand int4,
twothousand int4,
fivethous int4,
tenthous int4,
odd int4,
even int4,
stringu1 name,
stringu2 name,
string4 name
) with(autovacuum_enabled = off);
DELETE FROM onek_random;
COPY onek_random FROM '@abs_builddir@/data/onek.data';
--
-- RANDOM
-- Test the random function
--
-- count the number of tuples originally, should be 1000
SELECT count(*) FROM onek_random;
-- pick three random rows, they shouldn't match
(SELECT unique1 AS random
FROM onek_random ORDER BY random() LIMIT 1)
INTERSECT
(SELECT unique1 AS random
FROM onek_random ORDER BY random() LIMIT 1)
INTERSECT
(SELECT unique1 AS random
FROM onek_random ORDER BY random() LIMIT 1);
-- count roughly 1/10 of the tuples
SELECT count(*) AS random INTO RANDOM_TBL
FROM onek_random WHERE random() < 1.0/10;
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
FROM onek_random WHERE random() < 1.0/10;
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
FROM onek_random WHERE random() < 1.0/10;
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
FROM onek_random WHERE random() < 1.0/10;
-- now test that they are different counts
SELECT random, count(random) FROM RANDOM_TBL
GROUP BY random HAVING count(random) > 3;
SELECT AVG(random) FROM RANDOM_TBL
HAVING AVG(random) NOT BETWEEN 80 AND 120;
DROP TABLE onek_random;