⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aggbuiltin.sql

📁 derby database source code.good for you.
💻 SQL
📖 第 1 页 / 共 3 页
字号:
-- Note that bug 5704 occurs throughout this test-- Decimal results may be outside the range of valid types in Cloudscape-- ** insert avg.sql-- create an all types tablescreate table t (i int, s smallint, l bigint,				c char(10), v varchar(50), lvc long varchar,				d double precision, r real, 				dt date, t time, ts timestamp,				b char(2) for bit data, bv varchar(8) for bit data, lbv long varchar for bit data,				dc decimal(5,2));-- empty tablecreate table empty (i int, s smallint, l bigint,				c char(10), v varchar(50), lvc long varchar,				d double precision, r real, 				dt date, t time, ts timestamp,				b char(2) for bit data, bv varchar(8) for bit data, lbv long varchar for bit data,				dc decimal(5,2));-- populate tablesinsert into t (i) values (null);insert into t (i) values (null);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', x'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (1, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 200, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 222.22);insert into t values (0, 100, 2000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 222.22);insert into t values (0, 100, 1000000,					  'goodbye', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'noone is here', 'jimmie noone was here',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  100.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 100.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-09-09'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:55:55'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:55:55'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'ffff', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'1111111111111111', X'1234', 111.11);---------------------------------------- NEGATIVE TESTS---------------------------------------- cannot aggregate datatypes that don't support NumberDataValueselect avg(c) from t;select avg(v) from t;select avg(lvc) from t;select avg(dt) from t;select avg(t) from t;select avg(ts) from t;select avg(b) from t;select avg(bv) from t;select avg(lbv) from t;select avg(c) from t group by c;select avg(v) from t group by c;select avg(lvc) from t group by c;select avg(dt) from t group by c;select avg(t) from t group by c;select avg(ts) from t group by c;select avg(b) from t group by c;select avg(bv) from t group by c;select avg(lbv) from t group by c;-- long varchar datatypes toocreate table t1 (c1 long varchar);select avg(c1) from t1;drop table t1;-- constantsselect avg('hello') from t;select avg(X'11') from t;select avg(date('1999-06-06')) from t;select avg(time('12:30:30')) from t;select avg(timestamp('1999-06-06 12:30:30')) from t;----------------------------- NULL AGGREGATION----------------------------- scalarselect avg(i) from empty;select avg(s) from empty;select avg(d) from empty;select avg(l) from empty;select avg(r) from empty;select avg(dc) from empty;-- variationsselect avg(i), avg(s), avg(r), avg(l) from empty;select avg(i+1) from empty;-- vectorselect avg(i) from empty group by i;select avg(s) from empty group by s;select avg(d) from empty group by d;select avg(l) from empty group by l;select avg(r) from empty group by r;select avg(dc) from empty group by dc;---------------------------------- BASIC ACCEPTANCE TESTS--------------------------------select avg(i) from t;select avg(s) from t;select avg(d) from t;select avg(l) from t;select avg(r) from t;select avg(dc) from t;select avg(i) from t group by i;select avg(s) from t group by s;select avg(d) from t group by d;select avg(l) from t group by l;select avg(r) from t group by r;select avg(dc), sum(dc), count(dc) from t group by dc;-- constantsselect avg(1) from t;select avg(1.1) from t;select avg(1e1) from t;select avg(1) from t group by i;select avg(1.1) from t group by r;select avg(1e1) from t group by r;-- multicolumn groupingselect avg(i), avg(l), avg(r) from t group by i, dt, b;select i, dt, avg(i), avg(r), avg(l), l from t group by i, dt, b, l; -- group by expressionselect avg(expr1), avg(expr2)from (select i * s, r * 2 from t) t (expr1, expr2) group by expr2, expr1;-- distinct and group byselect distinct avg(i) from t group by i, dt;-- insert selectcreate table tmp (x int, y smallint);insert into tmp (x, y) select avg(i), avg(s) from t;select * from tmp;insert into tmp (x, y) select avg(i), avg(s) from t group by b;select * from tmp;drop table tmp;-- some accuracy testscreate table tmp (x int);insert into tmp values (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647),                     (2147483647);values(2147483647);select avg(x) from tmp;select avg(-(x - 1)) from tmp;select avg(x) from tmp group by x;select avg(-(x - 1)) from tmp group by x;drop table tmp;-- now lets try some simple averages to see what-- type of accuracy we getcreate table tmp(x double precision, y int);prepare scalar as 'select avg(x) from tmp';prepare vector as 'select avg(x) from tmp group by y';insert into tmp values (1,1);execute scalar;execute vector;insert into tmp values (2,1);execute scalar;execute vector;insert into tmp values (3,1);execute scalar;execute vector;insert into tmp values (4,1);execute scalar;execute vector;insert into tmp values (5,1);execute scalar;execute vector;insert into tmp values (6,1);execute scalar;execute vector;insert into tmp values (7,1);execute scalar;execute vector;insert into tmp values (10000,1);execute scalar;execute vector;remove vector;remove scalar;drop table tmp;-- drop tablesdrop table t;drop table empty;-- ** insert count.sql-- create an all types tablescreate table t (i int, s smallint, l bigint,				c char(10), v varchar(50), lvc long varchar,				d double precision, r real, 				dt date, t time, ts timestamp,				b char(2) for bit data, bv varchar(8) for bit data, lbv long varchar for bit data,				dc decimal(5,2));-- empty tablecreate table empty (i int, s smallint, l bigint,				c char(10), v varchar(50), lvc long varchar,				d double precision, r real, 				dt date, t time, ts timestamp,				b char(2) for bit data, bv varchar(8) for bit data, lbv long varchar for bit data,				dc decimal(5,2));-- bit maps to Byte[], so can't test for now-- populate tablesinsert into t (i) values (null);insert into t (i) values (null);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (1, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 200, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 222.22);insert into t values (0, 100, 2000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 222.22);insert into t values (0, 100, 1000000,					  'goodbye', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'noone is here', 'jimmie noone was here',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  100.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 100.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-09-09'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:55:55'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:55:55'),					  X'12af', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'ffff', X'0000111100001111', X'1234', 111.11);insert into t values (0, 100, 1000000,					  'duplicate', 'this is duplicated', 'also duplicated',					  200.0e0, 200.0e0, 					  date('1992-01-01'), time('12:30:30'), timestamp('1992-01-01 12:30:30'),					  X'12af', X'1111111111111111', X'1234', 111.11);----------------------------- NULL AGGREGATION----------------------------- scalarselect count(i) from empty;select count(s) from empty;select count(l) from empty;select count(c) from empty;select count(v) from empty;select count(lvc) from empty;select count(d) from empty;select count(r) from empty;select count(dt) from empty;select count(t) from empty;select count(ts) from empty;select count(b) from empty;select count(bv) from empty;-- bug: should fail in db2 mode-- after for bit data is completely implementedselect count(lbv) from empty;select count(dc) from empty;-- variationsselect count(i), count(b), count(i), count(s) from empty;select count(i+1) from empty;-- vectorselect count(i) from empty group by i;select count(s) from empty group by s;select count(l) from empty group by l;select count(c) from empty group by c;select count(v) from empty group by v;select count(d) from empty group by d;select count(r) from empty group by r;select count(dt) from empty group by dt;select count(t) from empty group by t;select count(ts) from empty group by ts;select count(b) from empty group by b;select count(bv) from empty group by bv;select count(lbv) from empty group by lbv;select count(dc) from empty group by dc;---------------------------------- BASIC ACCEPTANCE TESTS--------------------------------select count(i) from t;select count(s) from t;select count(l) from t;select count(c) from t;select count(v) from t;select count(lvc) from t;select count(d) from t;select count(r) from t;select count(dt) from t;select count(t) from t;select count(ts) from t;select count(b) from t;select count(bv) from t;select count(lbv) from t;select count(dc) from t;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -