File: bigints_sum_avg.test

package info (click to toggle)
duckdb 1.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 299,196 kB
  • sloc: cpp: 865,414; ansic: 57,292; python: 18,871; sql: 12,663; lisp: 11,751; yacc: 7,412; lex: 1,682; sh: 747; makefile: 558
file content (117 lines) | stat: -rw-r--r-- 1,882 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# name: test/sql/function/list/aggregates/bigints_sum_avg.test
# description: Test list_sum and list_avg with bigints
# group: [aggregates]

statement ok
CREATE TABLE bigints (i BIGINT[]);

statement ok
INSERT INTO bigints VALUES ([1, 2, 3]);

# sum
query I
SELECT list_sum(i) FROM bigints;
----
6

# avg
query I
SELECT list_avg(i) FROM bigints;
----
2

statement ok
DELETE FROM bigints;

# sum no longer fits in int64
statement ok
INSERT INTO bigints VALUES ([1, 2, 3, 9223372036854775806]);

# sum
query I
SELECT list_sum(i) FROM bigints;
----
9223372036854775812

# avg
query I
SELECT list_avg(i) FROM bigints;
----
2305843009213693952

statement ok
DELETE FROM bigints;

statement ok
INSERT INTO bigints VALUES ([-1, -2, -3]);

# sum
query I
SELECT list_sum(i) FROM bigints;
----
-6

# avg
query I
SELECT list_avg(i) FROM bigints;
----
-2

statement ok
DELETE FROM bigints;

# sum no longer fits in int64 [negative]
statement ok
INSERT INTO bigints VALUES ([-1, -2, -3, -9223372036854775806]);

# sum
query I
SELECT list_sum(i) FROM bigints;
----
-9223372036854775812

# avg
query I
SELECT list_avg(i) FROM bigints;
----
-2305843009213693952

# now with decimals

statement ok
CREATE TABLE decimals (i DECIMAL(18,1)[]);

statement ok
INSERT INTO decimals VALUES ([1, 2, 3]);

# sum
query I
SELECT list_sum(i) FROM decimals;
----
6.0

# avg
query I
SELECT list_avg(i) FROM decimals;
----
2.0

statement ok
DELETE FROM decimals;

# sum no longer fits in int64
statement ok
INSERT INTO decimals VALUES ([99999999999999999.9, 99999999999999999.9, 99999999999999999.9,
    99999999999999999.9, 99999999999999999.9, 99999999999999999.9, 99999999999999999.9,
    99999999999999999.9, 99999999999999999.9, 99999999999999999.9, 1.0, 2.0, 3.0]);

# sum
query I
SELECT list_sum(i) FROM decimals;
----
1000000000000000005.0

query I
SELECT list_avg(i) FROM decimals;
----
76923076923076923