· 8 years ago · Dec 15, 2017, 11:06 AM
1Drop Table If Exists __UNIVARIATE__ Cascade ;
2Create Temporary Table __UNIVARIATE__
3(
4 "TimeStamp" TIMESTAMP( 6) WITH TIME ZONE ,
5 "DatabaseName" VARCHAR( 63) ,
6 "SchemaName" VARCHAR( 63) ,
7 "TableName" VARCHAR( 63) ,
8 "ColumnName" VARCHAR( 63) ,
9
10 "N w Null" BIGINT ,
11 "N" BIGINT ,
12 "1/N" FLOAT ,
13 "N-1" BIGINT ,
14
15 "Min" FLOAT ,
16 "Max" FLOAT ,
17
18 "Avg" FLOAT ,
19 "Avgx 2" FLOAT ,
20 "Avgx 3" FLOAT ,
21 "Avgx 4" FLOAT ,
22
23 "Sum" FLOAT ,
24 "Sum x2" FLOAT ,
25 "Sum x3" FLOAT ,
26 "Sum x4" FLOAT ,
27
28 "Uniq" BIGINT ,
29 "0" BIGINT ,
30 "POS" BIGINT ,
31 "NEG" BIGINT ,
32 "Null" BIGINT ,
33
34 "Geometric Mean" FLOAT ,
35 "Harmonic Mean" FLOAT ,
36
37 "Range" FLOAT ,
38 "Mid-range" FLOAT ,
39
40 "Kurtosis" FLOAT ,
41 "Skewness" FLOAT ,
42
43 "Perc Uniq" FLOAT ,
44 "Perc Uniq w Null" FLOAT ,
45 "Perc 0" FLOAT ,
46 "Perc POS" FLOAT ,
47 "Perc NEG" FLOAT ,
48 "Perc Null" FLOAT ,
49
50 "Corrected Sum of Squares" FLOAT ,
51 "Student Test Statistic" FLOAT ,
52
53 "Standard Deviation Population" FLOAT ,
54 "Standard Deviation Sample" FLOAT ,
55 "Variance Population" FLOAT ,
56 "Variance Sample" FLOAT ,
57
58 "Coefficient Variation" FLOAT ,
59
60 "Sturges" FLOAT ,
61 "Rice" FLOAT ,
62 "Sqrt" FLOAT ,
63 "Doane" FLOAT ,
64 "Scott" FLOAT
65)
66On Commit Preserve Rows
67;
68
69Drop View If Exists stat.__QBUILDER_UNIVARIATE__ Cascade ;
70Create Or Replace View stat.__QBUILDER_UNIVARIATE__
71AS
72Select
73 table_catalog AS "DatabaseName"
74 , table_schema AS "SchemaName"
75 , table_name AS "TableName"
76 , ROW_NUMBER() Over ( Partition By table_catalog, table_schema, table_name Order By table_name) AS RN
77 , ' Select ' ||
78 'Current_Timestamp( 6 ) AS "TimeStamp" ' ||
79 ', Cast( '''|| col.table_catalog ||''' AS Varchar(63) ) AS "DatabaseName" ' ||
80 ', Cast( '''|| col.table_schema ||''' AS Varchar(63) ) AS "SchemaName" ' ||
81 ', Cast( '''|| col.table_name ||''' AS Varchar(63) ) AS "TableName" ' ||
82 ', Cast( '''|| col.column_name ||''' AS Varchar(63) ) AS "ColumnName" ' ||
83 ', t.* ' ||
84 'From ' ||
85 '( ' ||
86 'Select ' ||
87 't.* ' ||
88 ', "Max" - "Min" AS "Range" ' ||
89 ', ( "Max" + "Min" ) / 2 AS "Mid-range" ' ||
90 ', ( ' ||
91 '( ' ||
92 '( ' ||
93 '"1/N" * "Sum x4" ' ||
94 '- ' ||
95 '4 * "Avg" * "Sum x3" * "1/N" ' ||
96 '+ ' ||
97 '6 * "Avgx 2" * ( ( "Sum x2" - "N" * "Avgx 2" ) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ) ' ||
98 ') ' ||
99 '+ ' ||
100 '3 * "Avgx 4" ' ||
101 ') ' ||
102 '/ ' ||
103 'NULLIF( ' ||
104 'Power( ' ||
105 'SQRT( ' ||
106 'Case ' ||
107 'When ( "Sum x2" - "N" * "Avgx 2" ) / NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
108 'Then ( "Sum x2" - "N" * "Avgx 2" ) / NULLIF( NULLIF( "N-1", 0 ), -1 )' ||
109 'Else NULL ' ||
110 'End ' ||
111 ') ' ||
112 ', 4 ) ' ||
113 ', 0 ) ' ||
114 ') ' ||
115 '- ' ||
116 '( ' ||
117 '( 3 * Power( NULLIF( NULLIF( "N-1", 0 ), -1 ), 2 ) ) ' ||
118 '/ ' ||
119 'NULLIF( ( NULLIF( "N", 2 ) -2 ) * ( NULLIF( "N", 3 ) -3 ), 0 ) ' ||
120 ') ' ||
121 'AS "Kurtosis" ' ||
122 ', ( ' ||
123 '"1/N" * "Sum x3" - "Avgx 3" - 3 * "Avg" * ( ( "Sum x2" - ( "N" * "Avgx 2" ) ) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ) ' ||
124 ') ' ||
125 '/ ' ||
126 'NULLIF( ' ||
127 'Power( ' ||
128 'SQRT( ' ||
129 'Case ' ||
130 'When ( "Sum x2" - ( "N" * "Avgx 2" )) ' ||
131 '/ ' ||
132 'NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
133 'Then ( "Sum x2" - ( "N" * "Avgx 2" )) ' ||
134 '/ ' ||
135 'NULLIF( NULLIF( "N-1", 0 ),- 1 ) ' ||
136 'Else ' ||
137 'NULL ' ||
138 'End ' ||
139 ') ' ||
140 ', 3 ) ' ||
141 ', 0 ) ' ||
142 'AS "Skewness" ' ||
143 ', "Uniq" / Cast( "N" AS Float ) * 100 AS "Perc Uniq" ' ||
144 ', "Uniq" / Cast( "N w Null" AS Float ) * 100 AS "Perc Uniq w Null" ' ||
145 ', "0" / Cast( "N" AS Float ) * 100 AS "Perc 0" ' ||
146 ', "POS" / Cast( "N" AS Float ) * 100 AS "Perc POS" ' ||
147 ', "NEG" / Cast( "N" AS Float ) * 100 AS "Perc NEG" ' ||
148 ',"Null" / Cast( "N w Null" AS Float ) * 100 AS "Perc Null" ' ||
149 ', "Sum x2" - ( "N" * "Avgx 2" ) AS "Corrected Sum of Squares" ' ||
150 ', ( "Avg" - 0 ) ' ||
151 '/ ' ||
152 'NULLIF( ' ||
153 '( ' ||
154 'SQRT( ' ||
155 'Case ' ||
156 'When ( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
157 'Then ( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ' ||
158 'Else NULL ' ||
159 'End ' ||
160 ') '||
161 '/ ' ||
162 'NULLIF( SQRT( Case When "N" >= 0 Then "N" Else NULL End ), 0 ) ' ||
163 ') ' ||
164 ', 0 ) ' ||
165 'AS "Student Test Statistic" ' ||
166 ', SQRT( ' ||
167 'Case ' ||
168 'When ( "Sum x2" -( "N" * "Avgx 2" )) / NULLIF( "N", 0 ) >= 0 ' ||
169 'Then ( "Sum x2" -( "N" * "Avgx 2" )) / NULLIF( "N", 0 ) ' ||
170 'Else NULL ' ||
171 'End ' ||
172 ') AS "Standard Deviation Population" ' ||
173 ', SQRT( ' ||
174 'Case ' ||
175 'When ( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
176 'Then ( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ' ||
177 'Else NULL ' ||
178 'End ' ||
179 ') AS "Standard Deviation Sample" ' ||
180 ', ( "Sum x2" - ( "N" * "Avgx 2" ) ) / NULLIF( "N", 0 ) AS "Variance Population" ' ||
181 ', ( "Sum x2" - ( "N" * "Avgx 2" ) ) / NULLIF( NULLIF( "N-1", 0 ), -1 ) AS "Variance Sample" ' ||
182 ', SQRT( ' ||
183 'Case ' ||
184 'When ( "Sum x2" - "N" * "Avgx 2" ) / NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
185 'Then ( "Sum x2" - "N" * "Avgx 2" ) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ' ||
186 'Else NULL ' ||
187 'End ' ||
188 ') ' ||
189 '/ ' ||
190 'NULLIF( "Avg", 0 ) AS "Coefficient Variation" ' ||
191 ', ( 1 + 10 / Cast( 3 AS Float ) * LOG( Case When "N" > 0 Then "N" Else NULL End ) ) AS "Sturges" ' ||
192 ', ( 2 * Power( "N",( 1 / Cast( 3 AS Float ))) ) AS "Rice" ' ||
193 ', ( SQRT( Case When "N" >= 0 Then "N" Else NULL End ) ) AS "Sqrt" ' ||
194 ', ( 1 + ( LOG( Case When "N" > 0 Then "N" Else NULL End ) / LOG( 2 ) ) ' ||
195 '+ ' ||
196 '( ' ||
197 'LOG( ' ||
198 'Case ' ||
199 'When 1 + ' ||
200 '( ' ||
201 '( "1/N" * "Sum x3" - "Avgx 3" - 3 * "Avg" * (( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ))) ' ||
202 '/ ' ||
203 'NULLIF( ' ||
204 'Power( ' ||
205 'SQRT( ' ||
206 'Case ' ||
207 'When( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
208 'Then( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ' ||
209 'Else NULL ' ||
210 'End ' ||
211 ') ' ||
212 ', 3 ) ' ||
213 ', 0 ) ' ||
214 ') > 0 ' ||
215 'Then 1 + ' ||
216 '( ' ||
217 '( "1/N" * "Sum x3" - "Avgx 3" - 3 * "Avg" * (( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ))) ' ||
218 '/ ' ||
219 'NULLIF( ' ||
220 'Power( ' ||
221 'SQRT( ' ||
222 'Case ' ||
223 'When( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
224 'Then( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ' ||
225 'Else NULL ' ||
226 'End ' ||
227 ') ' ||
228 ', 3 ) ' ||
229 ', 0 ) ' ||
230 ') ' ||
231 'Else NULL ' ||
232 'End ) ' ||
233 '/ ' ||
234 'LOG( 2 ) ' ||
235 ') ' ||
236 ') ' ||
237 '/* Log_2 (x) = Log_10 (x) / Log_10 (2) */ AS "Doane" ' ||
238 ', ( ' ||
239 'Cast( 3.49 AS Float ) ' ||
240 '* ' ||
241 'SQRT( ' ||
242 'Case ' ||
243 'When ( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) >= 0 ' ||
244 'Then ( "Sum x2" - ( "N" * "Avgx 2" )) / NULLIF( NULLIF( "N-1", 0 ), -1 ) ' ||
245 'Else NULL ' ||
246 'End ' ||
247 ') ' ||
248 '/ ' ||
249 'Power( Case When "N" >= 0 Then "N" Else NULL End, ( -1 / Cast( 3 AS Float ))) ' ||
250 ') AS "Scott" ' ||
251 'From ' ||
252 '( ' ||
253 'Select ' ||
254 'Cast( COUNT(*) AS Bigint ) AS "N w Null" ' ||
255 ', Cast( COUNT( "'|| col.column_name || '" ) AS Bigint ) AS "N" ' ||
256 ', ( 1 / NULLIF( Cast( COUNT( "'|| col.column_name || '" ) AS Float ), 0 ) ) AS "1/N" ' ||
257 ', Cast( COUNT( "'|| col.column_name || '" ) AS Bigint ) - 1 AS "N-1" ' ||
258 ', MIN( "'|| col.column_name || '") AS "Min" ' ||
259 ', MAX( "'|| col.column_name || '") AS "Max" ' ||
260 ', AVG( "'|| col.column_name || '") AS "Avg" ' ||
261 ', Power( AVG( "'|| col.column_name || '"), 2 ) AS "Avgx 2" ' ||
262 ', Power( AVG( "'|| col.column_name || '"), 3 ) AS "Avgx 3" ' ||
263 ', Power( AVG( "'|| col.column_name || '"), 4 ) AS "Avgx 4" ' ||
264 ', Sum( "'|| col.column_name || '") AS "Sum" ' ||
265 ', Sum( Power( "'|| col.column_name || '", 2 )) AS "Sum x2" /* Also called: "Uncorrected Sum of Squares" */ ' ||
266 ', Sum( Power( "'|| col.column_name || '", 3 )) AS "Sum x3" ' ||
267 ', Sum( Power( "'|| col.column_name || '", 4 )) AS "Sum x4" ' ||
268 ', Cast( COUNT( DISTINCT "'|| col.column_name || '" ) AS Bigint ) AS "Uniq" ' ||
269 ', Cast( Sum( Case When "'|| col.column_name || '" = 0 Then 1 Else 0 End ) AS Bigint ) AS "0" ' ||
270 ', Cast( Sum( Case When "'|| col.column_name || '" > 0 Then 1 Else 0 End ) AS Bigint ) AS "POS" ' ||
271 ', Cast( Sum( Case When "'|| col.column_name || '" < 0 Then 1 Else 0 End ) AS Bigint ) AS "NEG" ' ||
272 ', Cast( Sum( Case When "'|| col.column_name || '" is NULL Then 1 Else 0 End ) AS Bigint ) AS "Null" ' ||
273 ', EXP( AVG( LN( Case When "'|| col.column_name || '"> 0 Then "'|| col.column_name || '" Else NULL End )) ) AS "Geometric Mean" ' ||
274 ', 1 / NULLIF( AVG( 1 / NULLIF(( Case When "'|| col.column_name || '"> 0 Then "'|| col.column_name || '" Else NULL End ), 0 )), 0 ) AS "Harmonic Mean" ' ||
275 'From ' ||
276 '( ' ||
277 'Select ' ||
278 'Cast( "'|| col.column_name || '" AS Float ) AS "'|| col.column_name || '" ' ||
279 'From "'|| col.table_schema ||'"."'|| col.table_name ||'" ' ||
280 ') t ' ||
281 ') t ' ||
282 ') t ' AS "TheQuery"
283From
284 information_schema.columns AS col
285Where 1=1
286 AND col.data_type IN
287 (
288 'numeric'
289 , 'integer'
290 , 'double precision'
291 , 'bigint'
292 , 'real'
293 , 'smallint'
294 )
295;
296
297DROP FUNCTION If Exists stat.f_udf_sql_trans_trim( col CHARACTER VARYING ) ;
298CREATE OR REPLACE FUNCTION stat.f_udf_sql_trans_trim( col CHARACTER VARYING )
299RETURNS CHARACTER VARYING AS
300$func$
301BEGIN
302RETURN
303 TRIM( BOTH E'\x0D' FROM /* gets rid of CR: 'Carriage Return' special character */
304 TRIM( BOTH E'\x0A' FROM /* gets rid of LF: 'Line Feed' special character */
305 TRIM( BOTH E'\x0B' FROM /* gets rid of vertical TAB: 'v' special character */
306 TRIM( BOTH E'\x09' FROM /* gets rid of horizontal TAB: 't' special character */
307 TRIM( col) ) ) ) ) /* gets rid of Space character: ' ' special character */
308;
309END ;
310$func$
311LANGUAGE plpgsql
312VOLATILE
313RETURNS NULL ON NULL INPUT
314EXTERNAL SECURITY DEFINER
315;
316
317
318
319
320Drop Function If Exists stat.f_sp_sql_stat_univariate( CHARACTER VARYING, CHARACTER VARYING) ;
321Create Or Replace Function stat.f_sp_sql_stat_univariate( IN sch VARCHAR( 63), IN tbl VARCHAR( 63) )
322
323RETURNS SETOF __UNIVARIATE__ AS
324
325$func$
326
327Declare
328
329 q_row RECORD ;
330 ddl VARCHAR := '' ;
331
332Begin
333
334 For q_row IN
335 Select
336 *
337 From
338 stat.__QBUILDER_UNIVARIATE__
339 Where 1=1
340 And "SchemaName" = stat.f_udf_sql_trans_trim( sch )
341 And "TableName" = stat.f_udf_sql_trans_trim( tbl )
342 Loop
343 ddl = 'INSERT INTO __UNIVARIATE__ ' || q_row."TheQuery" ;
344 Execute ddl ;
345 ddl := '' ;
346 Return Query Execute q_row."TheQuery" ;
347 End Loop ;
348 Return ;
349
350End ;
351
352$func$
353
354LANGUAGE plpgsql
355VOLATILE
356RETURNS NULL ON NULL INPUT
357EXTERNAL SECURITY DEFINER
358;
359
360begin ;
361
362Create Schema If Not Exists data ;
363Create Schema If Not Exists stat ;
364
365Create Table If Not Exists data.iris
366(
367 SepalLength Float
368 , SepalWidth Float
369 , PetalLength Float
370 , PetalWidth Float
371 , Species Character Varying
372)
373;
374
375INSERT INTO data.iris VALUES( 5.1,3.5,1.4,0.2,'Iris-setosa');
376INSERT INTO data.iris VALUES( 4.9,3.0,1.4,0.2,'Iris-setosa');
377INSERT INTO data.iris VALUES( 4.7,3.2,1.3,0.2,'Iris-setosa');
378INSERT INTO data.iris VALUES( 4.6,3.1,1.5,0.2,'Iris-setosa');
379INSERT INTO data.iris VALUES( 5.0,3.6,1.4,0.2,'Iris-setosa');
380INSERT INTO data.iris VALUES( 5.4,3.9,1.7,0.4,'Iris-setosa');
381INSERT INTO data.iris VALUES( 4.6,3.4,1.4,0.3,'Iris-setosa');
382INSERT INTO data.iris VALUES( 5.0,3.4,1.5,0.2,'Iris-setosa');
383INSERT INTO data.iris VALUES( 4.4,2.9,1.4,0.2,'Iris-setosa');
384INSERT INTO data.iris VALUES( 4.9,3.1,1.5,0.1,'Iris-setosa');
385INSERT INTO data.iris VALUES( 5.4,3.7,1.5,0.2,'Iris-setosa');
386INSERT INTO data.iris VALUES( 4.8,3.4,1.6,0.2,'Iris-setosa');
387INSERT INTO data.iris VALUES( 4.8,3.0,1.4,0.1,'Iris-setosa');
388INSERT INTO data.iris VALUES( 4.3,3.0,1.1,0.1,'Iris-setosa');
389INSERT INTO data.iris VALUES( 5.8,4.0,1.2,0.2,'Iris-setosa');
390INSERT INTO data.iris VALUES( 5.7,4.4,1.5,0.4,'Iris-setosa');
391INSERT INTO data.iris VALUES( 5.4,3.9,1.3,0.4,'Iris-setosa');
392INSERT INTO data.iris VALUES( 5.1,3.5,1.4,0.3,'Iris-setosa');
393INSERT INTO data.iris VALUES( 5.7,3.8,1.7,0.3,'Iris-setosa');
394INSERT INTO data.iris VALUES( 5.1,3.8,1.5,0.3,'Iris-setosa');
395INSERT INTO data.iris VALUES( 5.4,3.4,1.7,0.2,'Iris-setosa');
396INSERT INTO data.iris VALUES( 5.1,3.7,1.5,0.4,'Iris-setosa');
397INSERT INTO data.iris VALUES( 4.6,3.6,1.0,0.2,'Iris-setosa');
398INSERT INTO data.iris VALUES( 5.1,3.3,1.7,0.5,'Iris-setosa');
399INSERT INTO data.iris VALUES( 4.8,3.4,1.9,0.2,'Iris-setosa');
400INSERT INTO data.iris VALUES( 5.0,3.0,1.6,0.2,'Iris-setosa');
401INSERT INTO data.iris VALUES( 5.0,3.4,1.6,0.4,'Iris-setosa');
402INSERT INTO data.iris VALUES( 5.2,3.5,1.5,0.2,'Iris-setosa');
403INSERT INTO data.iris VALUES( 5.2,3.4,1.4,0.2,'Iris-setosa');
404INSERT INTO data.iris VALUES( 4.7,3.2,1.6,0.2,'Iris-setosa');
405INSERT INTO data.iris VALUES( 4.8,3.1,1.6,0.2,'Iris-setosa');
406INSERT INTO data.iris VALUES( 5.4,3.4,1.5,0.4,'Iris-setosa');
407INSERT INTO data.iris VALUES( 5.2,4.1,1.5,0.1,'Iris-setosa');
408INSERT INTO data.iris VALUES( 5.5,4.2,1.4,0.2,'Iris-setosa');
409INSERT INTO data.iris VALUES( 4.9,3.1,1.5,0.1,'Iris-setosa');
410INSERT INTO data.iris VALUES( 5.0,3.2,1.2,0.2,'Iris-setosa');
411INSERT INTO data.iris VALUES( 5.5,3.5,1.3,0.2,'Iris-setosa');
412INSERT INTO data.iris VALUES( 4.9,3.1,1.5,0.1,'Iris-setosa');
413INSERT INTO data.iris VALUES( 4.4,3.0,1.3,0.2,'Iris-setosa');
414INSERT INTO data.iris VALUES( 5.1,3.4,1.5,0.2,'Iris-setosa');
415INSERT INTO data.iris VALUES( 5.0,3.5,1.3,0.3,'Iris-setosa');
416INSERT INTO data.iris VALUES( 4.5,2.3,1.3,0.3,'Iris-setosa');
417INSERT INTO data.iris VALUES( 4.4,3.2,1.3,0.2,'Iris-setosa');
418INSERT INTO data.iris VALUES( 5.0,3.5,1.6,0.6,'Iris-setosa');
419INSERT INTO data.iris VALUES( 5.1,3.8,1.9,0.4,'Iris-setosa');
420INSERT INTO data.iris VALUES( 4.8,3.0,1.4,0.3,'Iris-setosa');
421INSERT INTO data.iris VALUES( 5.1,3.8,1.6,0.2,'Iris-setosa');
422INSERT INTO data.iris VALUES( 4.6,3.2,1.4,0.2,'Iris-setosa');
423INSERT INTO data.iris VALUES( 5.3,3.7,1.5,0.2,'Iris-setosa');
424INSERT INTO data.iris VALUES( 5.0,3.3,1.4,0.2,'Iris-setosa');
425INSERT INTO data.iris VALUES( 7.0,3.2,4.7,1.4,'Iris-versicolor');
426INSERT INTO data.iris VALUES( 6.4,3.2,4.5,1.5,'Iris-versicolor');
427INSERT INTO data.iris VALUES( 6.9,3.1,4.9,1.5,'Iris-versicolor');
428INSERT INTO data.iris VALUES( 5.5,2.3,4.0,1.3,'Iris-versicolor');
429INSERT INTO data.iris VALUES( 6.5,2.8,4.6,1.5,'Iris-versicolor');
430INSERT INTO data.iris VALUES( 5.7,2.8,4.5,1.3,'Iris-versicolor');
431INSERT INTO data.iris VALUES( 6.3,3.3,4.7,1.6,'Iris-versicolor');
432INSERT INTO data.iris VALUES( 4.9,2.4,3.3,1.0,'Iris-versicolor');
433INSERT INTO data.iris VALUES( 6.6,2.9,4.6,1.3,'Iris-versicolor');
434INSERT INTO data.iris VALUES( 5.2,2.7,3.9,1.4,'Iris-versicolor');
435INSERT INTO data.iris VALUES( 5.0,2.0,3.5,1.0,'Iris-versicolor');
436INSERT INTO data.iris VALUES( 5.9,3.0,4.2,1.5,'Iris-versicolor');
437INSERT INTO data.iris VALUES( 6.0,2.2,4.0,1.0,'Iris-versicolor');
438INSERT INTO data.iris VALUES( 6.1,2.9,4.7,1.4,'Iris-versicolor');
439INSERT INTO data.iris VALUES( 5.6,2.9,3.6,1.3,'Iris-versicolor');
440INSERT INTO data.iris VALUES( 6.7,3.1,4.4,1.4,'Iris-versicolor');
441INSERT INTO data.iris VALUES( 5.6,3.0,4.5,1.5,'Iris-versicolor');
442INSERT INTO data.iris VALUES( 5.8,2.7,4.1,1.0,'Iris-versicolor');
443INSERT INTO data.iris VALUES( 6.2,2.2,4.5,1.5,'Iris-versicolor');
444INSERT INTO data.iris VALUES( 5.6,2.5,3.9,1.1,'Iris-versicolor');
445INSERT INTO data.iris VALUES( 5.9,3.2,4.8,1.8,'Iris-versicolor');
446INSERT INTO data.iris VALUES( 6.1,2.8,4.0,1.3,'Iris-versicolor');
447INSERT INTO data.iris VALUES( 6.3,2.5,4.9,1.5,'Iris-versicolor');
448INSERT INTO data.iris VALUES( 6.1,2.8,4.7,1.2,'Iris-versicolor');
449INSERT INTO data.iris VALUES( 6.4,2.9,4.3,1.3,'Iris-versicolor');
450INSERT INTO data.iris VALUES( 6.6,3.0,4.4,1.4,'Iris-versicolor');
451INSERT INTO data.iris VALUES( 6.8,2.8,4.8,1.4,'Iris-versicolor');
452INSERT INTO data.iris VALUES( 6.7,3.0,5.0,1.7,'Iris-versicolor');
453INSERT INTO data.iris VALUES( 6.0,2.9,4.5,1.5,'Iris-versicolor');
454INSERT INTO data.iris VALUES( 5.7,2.6,3.5,1.0,'Iris-versicolor');
455INSERT INTO data.iris VALUES( 5.5,2.4,3.8,1.1,'Iris-versicolor');
456INSERT INTO data.iris VALUES( 5.5,2.4,3.7,1.0,'Iris-versicolor');
457INSERT INTO data.iris VALUES( 5.8,2.7,3.9,1.2,'Iris-versicolor');
458INSERT INTO data.iris VALUES( 6.0,2.7,5.1,1.6,'Iris-versicolor');
459INSERT INTO data.iris VALUES( 5.4,3.0,4.5,1.5,'Iris-versicolor');
460INSERT INTO data.iris VALUES( 6.0,3.4,4.5,1.6,'Iris-versicolor');
461INSERT INTO data.iris VALUES( 6.7,3.1,4.7,1.5,'Iris-versicolor');
462INSERT INTO data.iris VALUES( 6.3,2.3,4.4,1.3,'Iris-versicolor');
463INSERT INTO data.iris VALUES( 5.6,3.0,4.1,1.3,'Iris-versicolor');
464INSERT INTO data.iris VALUES( 5.5,2.5,4.0,1.3,'Iris-versicolor');
465INSERT INTO data.iris VALUES( 5.5,2.6,4.4,1.2,'Iris-versicolor');
466INSERT INTO data.iris VALUES( 6.1,3.0,4.6,1.4,'Iris-versicolor');
467INSERT INTO data.iris VALUES( 5.8,2.6,4.0,1.2,'Iris-versicolor');
468INSERT INTO data.iris VALUES( 5.0,2.3,3.3,1.0,'Iris-versicolor');
469INSERT INTO data.iris VALUES( 5.6,2.7,4.2,1.3,'Iris-versicolor');
470INSERT INTO data.iris VALUES( 5.7,3.0,4.2,1.2,'Iris-versicolor');
471INSERT INTO data.iris VALUES( 5.7,2.9,4.2,1.3,'Iris-versicolor');
472INSERT INTO data.iris VALUES( 6.2,2.9,4.3,1.3,'Iris-versicolor');
473INSERT INTO data.iris VALUES( 5.1,2.5,3.0,1.1,'Iris-versicolor');
474INSERT INTO data.iris VALUES( 5.7,2.8,4.1,1.3,'Iris-versicolor');
475INSERT INTO data.iris VALUES( 6.3,3.3,6.0,2.5,'Iris-virginica');
476INSERT INTO data.iris VALUES( 5.8,2.7,5.1,1.9,'Iris-virginica');
477INSERT INTO data.iris VALUES( 7.1,3.0,5.9,2.1,'Iris-virginica');
478INSERT INTO data.iris VALUES( 6.3,2.9,5.6,1.8,'Iris-virginica');
479INSERT INTO data.iris VALUES( 6.5,3.0,5.8,2.2,'Iris-virginica');
480INSERT INTO data.iris VALUES( 7.6,3.0,6.6,2.1,'Iris-virginica');
481INSERT INTO data.iris VALUES( 4.9,2.5,4.5,1.7,'Iris-virginica');
482INSERT INTO data.iris VALUES( 7.3,2.9,6.3,1.8,'Iris-virginica');
483INSERT INTO data.iris VALUES( 6.7,2.5,5.8,1.8,'Iris-virginica');
484INSERT INTO data.iris VALUES( 7.2,3.6,6.1,2.5,'Iris-virginica');
485INSERT INTO data.iris VALUES( 6.5,3.2,5.1,2.0,'Iris-virginica');
486INSERT INTO data.iris VALUES( 6.4,2.7,5.3,1.9,'Iris-virginica');
487INSERT INTO data.iris VALUES( 6.8,3.0,5.5,2.1,'Iris-virginica');
488INSERT INTO data.iris VALUES( 5.7,2.5,5.0,2.0,'Iris-virginica');
489INSERT INTO data.iris VALUES( 5.8,2.8,5.1,2.4,'Iris-virginica');
490INSERT INTO data.iris VALUES( 6.4,3.2,5.3,2.3,'Iris-virginica');
491INSERT INTO data.iris VALUES( 6.5,3.0,5.5,1.8,'Iris-virginica');
492INSERT INTO data.iris VALUES( 7.7,3.8,6.7,2.2,'Iris-virginica');
493INSERT INTO data.iris VALUES( 7.7,2.6,6.9,2.3,'Iris-virginica');
494INSERT INTO data.iris VALUES( 6.0,2.2,5.0,1.5,'Iris-virginica');
495INSERT INTO data.iris VALUES( 6.9,3.2,5.7,2.3,'Iris-virginica');
496INSERT INTO data.iris VALUES( 5.6,2.8,4.9,2.0,'Iris-virginica');
497INSERT INTO data.iris VALUES( 7.7,2.8,6.7,2.0,'Iris-virginica');
498INSERT INTO data.iris VALUES( 6.3,2.7,4.9,1.8,'Iris-virginica');
499INSERT INTO data.iris VALUES( 6.7,3.3,5.7,2.1,'Iris-virginica');
500INSERT INTO data.iris VALUES( 7.2,3.2,6.0,1.8,'Iris-virginica');
501INSERT INTO data.iris VALUES( 6.2,2.8,4.8,1.8,'Iris-virginica');
502INSERT INTO data.iris VALUES( 6.1,3.0,4.9,1.8,'Iris-virginica');
503INSERT INTO data.iris VALUES( 6.4,2.8,5.6,2.1,'Iris-virginica');
504INSERT INTO data.iris VALUES( 7.2,3.0,5.8,1.6,'Iris-virginica');
505INSERT INTO data.iris VALUES( 7.4,2.8,6.1,1.9,'Iris-virginica');
506INSERT INTO data.iris VALUES( 7.9,3.8,6.4,2.0,'Iris-virginica');
507INSERT INTO data.iris VALUES( 6.4,2.8,5.6,2.2,'Iris-virginica');
508INSERT INTO data.iris VALUES( 6.3,2.8,5.1,1.5,'Iris-virginica');
509INSERT INTO data.iris VALUES( 6.1,2.6,5.6,1.4,'Iris-virginica');
510INSERT INTO data.iris VALUES( 7.7,3.0,6.1,2.3,'Iris-virginica');
511INSERT INTO data.iris VALUES( 6.3,3.4,5.6,2.4,'Iris-virginica');
512INSERT INTO data.iris VALUES( 6.4,3.1,5.5,1.8,'Iris-virginica');
513INSERT INTO data.iris VALUES( 6.0,3.0,4.8,1.8,'Iris-virginica');
514INSERT INTO data.iris VALUES( 6.9,3.1,5.4,2.1,'Iris-virginica');
515INSERT INTO data.iris VALUES( 6.7,3.1,5.6,2.4,'Iris-virginica');
516INSERT INTO data.iris VALUES( 6.9,3.1,5.1,2.3,'Iris-virginica');
517INSERT INTO data.iris VALUES( 5.8,2.7,5.1,1.9,'Iris-virginica');
518INSERT INTO data.iris VALUES( 6.8,3.2,5.9,2.3,'Iris-virginica');
519INSERT INTO data.iris VALUES( 6.7,3.3,5.7,2.5,'Iris-virginica');
520INSERT INTO data.iris VALUES( 6.7,3.0,5.2,2.3,'Iris-virginica');
521INSERT INTO data.iris VALUES( 6.3,2.5,5.0,1.9,'Iris-virginica');
522INSERT INTO data.iris VALUES( 6.5,3.0,5.2,2.0,'Iris-virginica');
523INSERT INTO data.iris VALUES( 6.2,3.4,5.4,2.3,'Iris-virginica');
524INSERT INTO data.iris VALUES( 5.9,3.0,5.1,1.8,'Iris-virginica');
525
526
527
528commit ;
529
530Select * From stat.f_sp_sql_stat_univariate('data','iris') ;