0001
0002
0003
0004 create temporary view t1 as select * from values
0005 ("val1a", 6S, 8, 10L, float(15.0), 20D, 20E2BD, timestamp '2014-04-04 01:00:00.000', date '2014-04-04'),
0006 ("val1b", 8S, 16, 19L, float(17.0), 25D, 26E2BD, timestamp '2014-05-04 01:01:00.000', date '2014-05-04'),
0007 ("val1a", 16S, 12, 21L, float(15.0), 20D, 20E2BD, timestamp '2014-06-04 01:02:00.001', date '2014-06-04'),
0008 ("val1a", 16S, 12, 10L, float(15.0), 20D, 20E2BD, timestamp '2014-07-04 01:01:00.000', date '2014-07-04'),
0009 ("val1c", 8S, 16, 19L, float(17.0), 25D, 26E2BD, timestamp '2014-05-04 01:02:00.001', date '2014-05-05'),
0010 ("val1d", null, 16, 22L, float(17.0), 25D, 26E2BD, timestamp '2014-06-04 01:01:00.000', null),
0011 ("val1d", null, 16, 19L, float(17.0), 25D, 26E2BD, timestamp '2014-07-04 01:02:00.001', null),
0012 ("val1e", 10S, null, 25L, float(17.0), 25D, 26E2BD, timestamp '2014-08-04 01:01:00.000', date '2014-08-04'),
0013 ("val1e", 10S, null, 19L, float(17.0), 25D, 26E2BD, timestamp '2014-09-04 01:02:00.001', date '2014-09-04'),
0014 ("val1d", 10S, null, 12L, float(17.0), 25D, 26E2BD, timestamp '2015-05-04 01:01:00.000', date '2015-05-04'),
0015 ("val1a", 6S, 8, 10L, float(15.0), 20D, 20E2BD, timestamp '2014-04-04 01:02:00.001', date '2014-04-04'),
0016 ("val1e", 10S, null, 19L, float(17.0), 25D, 26E2BD, timestamp '2014-05-04 01:01:00.000', date '2014-05-04')
0017 as t1(t1a, t1b, t1c, t1d, t1e, t1f, t1g, t1h, t1i);
0018
0019 create temporary view t2 as select * from values
0020 ("val2a", 6S, 12, 14L, float(15), 20D, 20E2BD, timestamp '2014-04-04 01:01:00.000', date '2014-04-04'),
0021 ("val1b", 10S, 12, 19L, float(17), 25D, 26E2BD, timestamp '2014-05-04 01:01:00.000', date '2014-05-04'),
0022 ("val1b", 8S, 16, 119L, float(17), 25D, 26E2BD, timestamp '2015-05-04 01:01:00.000', date '2015-05-04'),
0023 ("val1c", 12S, 16, 219L, float(17), 25D, 26E2BD, timestamp '2016-05-04 01:01:00.000', date '2016-05-04'),
0024 ("val1b", null, 16, 319L, float(17), 25D, 26E2BD, timestamp '2017-05-04 01:01:00.000', null),
0025 ("val2e", 8S, null, 419L, float(17), 25D, 26E2BD, timestamp '2014-06-04 01:01:00.000', date '2014-06-04'),
0026 ("val1f", 19S, null, 519L, float(17), 25D, 26E2BD, timestamp '2014-05-04 01:01:00.000', date '2014-05-04'),
0027 ("val1b", 10S, 12, 19L, float(17), 25D, 26E2BD, timestamp '2014-06-04 01:01:00.000', date '2014-06-04'),
0028 ("val1b", 8S, 16, 19L, float(17), 25D, 26E2BD, timestamp '2014-07-04 01:01:00.000', date '2014-07-04'),
0029 ("val1c", 12S, 16, 19L, float(17), 25D, 26E2BD, timestamp '2014-08-04 01:01:00.000', date '2014-08-05'),
0030 ("val1e", 8S, null, 19L, float(17), 25D, 26E2BD, timestamp '2014-09-04 01:01:00.000', date '2014-09-04'),
0031 ("val1f", 19S, null, 19L, float(17), 25D, 26E2BD, timestamp '2014-10-04 01:01:00.000', date '2014-10-04'),
0032 ("val1b", null, 16, 19L, float(17), 25D, 26E2BD, timestamp '2014-05-04 01:01:00.000', null)
0033 as t2(t2a, t2b, t2c, t2d, t2e, t2f, t2g, t2h, t2i);
0034
0035 create temporary view t3 as select * from values
0036 ("val3a", 6S, 12, 110L, float(15), 20D, 20E2BD, timestamp '2014-04-04 01:02:00.000', date '2014-04-04'),
0037 ("val3a", 6S, 12, 10L, float(15), 20D, 20E2BD, timestamp '2014-05-04 01:02:00.000', date '2014-05-04'),
0038 ("val1b", 10S, 12, 219L, float(17), 25D, 26E2BD, timestamp '2014-05-04 01:02:00.000', date '2014-05-04'),
0039 ("val1b", 10S, 12, 19L, float(17), 25D, 26E2BD, timestamp '2014-05-04 01:02:00.000', date '2014-05-04'),
0040 ("val1b", 8S, 16, 319L, float(17), 25D, 26E2BD, timestamp '2014-06-04 01:02:00.000', date '2014-06-04'),
0041 ("val1b", 8S, 16, 19L, float(17), 25D, 26E2BD, timestamp '2014-07-04 01:02:00.000', date '2014-07-04'),
0042 ("val3c", 17S, 16, 519L, float(17), 25D, 26E2BD, timestamp '2014-08-04 01:02:00.000', date '2014-08-04'),
0043 ("val3c", 17S, 16, 19L, float(17), 25D, 26E2BD, timestamp '2014-09-04 01:02:00.000', date '2014-09-05'),
0044 ("val1b", null, 16, 419L, float(17), 25D, 26E2BD, timestamp '2014-10-04 01:02:00.000', null),
0045 ("val1b", null, 16, 19L, float(17), 25D, 26E2BD, timestamp '2014-11-04 01:02:00.000', null),
0046 ("val3b", 8S, null, 719L, float(17), 25D, 26E2BD, timestamp '2014-05-04 01:02:00.000', date '2014-05-04'),
0047 ("val3b", 8S, null, 19L, float(17), 25D, 26E2BD, timestamp '2015-05-04 01:02:00.000', date '2015-05-04')
0048 as t3(t3a, t3b, t3c, t3d, t3e, t3f, t3g, t3h, t3i);
0049
0050
0051
0052
0053 SELECT t2a,
0054 t2b,
0055 t2c,
0056 t2h,
0057 t2i
0058 FROM (SELECT *
0059 FROM t2
0060 WHERE t2a IN (SELECT t1a
0061 FROM t1)
0062 UNION ALL
0063 SELECT *
0064 FROM t3
0065 WHERE t3a IN (SELECT t1a
0066 FROM t1)) AS t3
0067 WHERE t2i IS NOT NULL AND
0068 2 * t2b = t2c
0069 ORDER BY t2c DESC nulls first;
0070
0071
0072 SELECT t2a,
0073 t2b,
0074 t2d,
0075 Count(DISTINCT( t2h )),
0076 t2i
0077 FROM (SELECT *
0078 FROM t2
0079 WHERE t2a IN (SELECT t1a
0080 FROM t1
0081 WHERE t2b = t1b)
0082 UNION
0083 SELECT *
0084 FROM t1
0085 WHERE t1a IN (SELECT t3a
0086 FROM t3
0087 WHERE t1c = t3c)) AS t3
0088 GROUP BY t2a,
0089 t2b,
0090 t2d,
0091 t2i
0092 ORDER BY t2d DESC;
0093
0094
0095 SELECT t2a,
0096 t2b,
0097 t2c,
0098 Min(t2d)
0099 FROM t2
0100 WHERE t2a IN (SELECT t1a
0101 FROM t1
0102 WHERE t1b = t2b)
0103 GROUP BY t2a, t2b, t2c
0104 UNION ALL
0105 SELECT t2a,
0106 t2b,
0107 t2c,
0108 Max(t2d)
0109 FROM t2
0110 WHERE t2a IN (SELECT t1a
0111 FROM t1
0112 WHERE t2c = t1c)
0113 GROUP BY t2a, t2b, t2c
0114 UNION
0115 SELECT t3a,
0116 t3b,
0117 t3c,
0118 Min(t3d)
0119 FROM t3
0120 WHERE t3a IN (SELECT t2a
0121 FROM t2
0122 WHERE t3c = t2c)
0123 GROUP BY t3a, t3b, t3c
0124 UNION DISTINCT
0125 SELECT t1a,
0126 t1b,
0127 t1c,
0128 Max(t1d)
0129 FROM t1
0130 WHERE t1a IN (SELECT t3a
0131 FROM t3
0132 WHERE t3d = t1d)
0133 GROUP BY t1a, t1b, t1c;
0134
0135
0136 SELECT DISTINCT( t2a ),
0137 t2b,
0138 Count(t2c),
0139 t2d,
0140 t2h,
0141 t2i
0142 FROM t2
0143 WHERE t2a IN (SELECT t1a
0144 FROM t1
0145 WHERE t1b = t2b)
0146 GROUP BY t2a,
0147 t2b,
0148 t2c,
0149 t2d,
0150 t2h,
0151 t2i
0152 UNION
0153 SELECT DISTINCT( t2a ),
0154 t2b,
0155 Count(t2c),
0156 t2d,
0157 t2h,
0158 t2i
0159 FROM t2
0160 WHERE t2a IN (SELECT t1a
0161 FROM t1
0162 WHERE t2c = t1c)
0163 GROUP BY t2a,
0164 t2b,
0165 t2c,
0166 t2d,
0167 t2h,
0168 t2i
0169 HAVING t2b IS NOT NULL;
0170
0171
0172 SELECT t2a,
0173 t2b,
0174 Count(t2c),
0175 t2d,
0176 t2h,
0177 t2i
0178 FROM t2
0179 WHERE t2a IN (SELECT DISTINCT(t1a)
0180 FROM t1
0181 WHERE t1b = t2b)
0182 GROUP BY t2a,
0183 t2b,
0184 t2c,
0185 t2d,
0186 t2h,
0187 t2i
0188
0189 UNION
0190 SELECT DISTINCT( t2a ),
0191 t2b,
0192 Count(t2c),
0193 t2d,
0194 t2h,
0195 t2i
0196 FROM t2
0197 WHERE t2b IN (SELECT Max(t1b)
0198 FROM t1
0199 WHERE t2c = t1c)
0200 GROUP BY t2a,
0201 t2b,
0202 t2c,
0203 t2d,
0204 t2h,
0205 t2i
0206 HAVING t2b IS NOT NULL
0207 UNION DISTINCT
0208 SELECT t2a,
0209 t2b,
0210 t2c,
0211 t2d,
0212 t2h,
0213 t2i
0214 FROM t2
0215 WHERE t2d IN (SELECT min(t1d)
0216 FROM t1
0217 WHERE t2c = t1c);
0218
0219
0220 SELECT t2a,
0221 t2b,
0222 t2c,
0223 t2d
0224 FROM t2
0225 WHERE t2a IN (SELECT t1a
0226 FROM t1
0227 WHERE t1b = t2b AND
0228 t1d < t2d)
0229 INTERSECT
0230 SELECT t2a,
0231 t2b,
0232 t2c,
0233 t2d
0234 FROM t2
0235 WHERE t2b IN (SELECT Max(t1b)
0236 FROM t1
0237 WHERE t2c = t1c)
0238 EXCEPT
0239 SELECT t2a,
0240 t2b,
0241 t2c,
0242 t2d
0243 FROM t2
0244 WHERE t2d IN (SELECT Min(t3d)
0245 FROM t3
0246 WHERE t2c = t3c)
0247 UNION ALL
0248 SELECT t2a,
0249 t2b,
0250 t2c,
0251 t2d
0252 FROM t2
0253 WHERE t2c IN (SELECT Max(t1c)
0254 FROM t1
0255 WHERE t1d = t2d);
0256
0257
0258
0259 SELECT DISTINCT(t1a),
0260 t1b,
0261 t1c,
0262 t1d
0263 FROM t1
0264 WHERE t1a IN (SELECT t3a
0265 FROM (SELECT t2a t3a
0266 FROM t2
0267 UNION ALL
0268 SELECT t2a t3a
0269 FROM t2) AS t3
0270 UNION
0271 SELECT t2a
0272 FROM (SELECT t2a
0273 FROM t2
0274 WHERE t2b > 6
0275 UNION
0276 SELECT t2a
0277 FROM t2
0278 WHERE t2b > 6) AS t4
0279 UNION DISTINCT
0280 SELECT t2a
0281 FROM (SELECT t2a
0282 FROM t2
0283 WHERE t2b > 6
0284 UNION DISTINCT
0285 SELECT t1a
0286 FROM t1
0287 WHERE t1b > 6) AS t5)
0288 GROUP BY t1a, t1b, t1c, t1d
0289 HAVING t1c IS NOT NULL AND t1b IS NOT NULL
0290 ORDER BY t1c DESC, t1a DESC;
0291
0292
0293 SELECT t1a,
0294 t1b,
0295 t1c
0296 FROM t1
0297 WHERE t1b IN (SELECT t2b
0298 FROM (SELECT t2b
0299 FROM t2
0300 WHERE t2b > 6
0301 INTERSECT
0302 SELECT t1b
0303 FROM t1
0304 WHERE t1b > 6) AS t3
0305 WHERE t2b = t1b);
0306
0307
0308 SELECT t1a,
0309 t1b,
0310 t1c
0311 FROM t1
0312 WHERE t1h IN (SELECT t2h
0313 FROM (SELECT t2h
0314 FROM t2
0315 EXCEPT
0316 SELECT t3h
0317 FROM t3) AS t3)
0318 ORDER BY t1b DESC NULLs first, t1c DESC NULLs last;
0319
0320
0321
0322 SELECT t1a,
0323 t1b,
0324 t1c
0325 FROM t1
0326 WHERE t1b IN
0327 (
0328 SELECT t2b
0329 FROM (
0330 SELECT t2b
0331 FROM t2
0332 WHERE t2b > 6
0333 INTERSECT
0334 SELECT t1b
0335 FROM t1
0336 WHERE t1b > 6) AS t3)
0337 UNION DISTINCT
0338 SELECT t1a,
0339 t1b,
0340 t1c
0341 FROM t1
0342 WHERE t1b IN
0343 (
0344 SELECT t2b
0345 FROM (
0346 SELECT t2b
0347 FROM t2
0348 WHERE t2b > 6
0349 EXCEPT
0350 SELECT t1b
0351 FROM t1
0352 WHERE t1b > 6) AS t4
0353 WHERE t2b = t1b)
0354 ORDER BY t1c DESC NULLS last, t1a DESC;
0355
0356
0357 SELECT *
0358 FROM (SELECT *
0359 FROM (SELECT *
0360 FROM t2
0361 WHERE t2h IN (SELECT t1h
0362 FROM t1
0363 WHERE t1a = t2a)
0364 UNION DISTINCT
0365 SELECT *
0366 FROM t1
0367 WHERE t1h IN (SELECT t3h
0368 FROM t3
0369 UNION
0370 SELECT t1h
0371 FROM t1)
0372 UNION
0373 SELECT *
0374 FROM t3
0375 WHERE t3a IN (SELECT t2a
0376 FROM t2
0377 UNION ALL
0378 SELECT t1a
0379 FROM t1
0380 WHERE t1b > 0)
0381 INTERSECT
0382 SELECT *
0383 FROM T1
0384 WHERE t1b IN (SELECT t3b
0385 FROM t3
0386 UNION DISTINCT
0387 SELECT t2b
0388 FROM t2
0389 )
0390 EXCEPT
0391 SELECT *
0392 FROM t2
0393 WHERE t2h IN (SELECT t1i
0394 FROM t1)) t4
0395 WHERE t4.t2b IN (SELECT Min(t3b)
0396 FROM t3
0397 WHERE t4.t2a = t3a));
0398
0399
0400
0401 SELECT t2a,
0402 t2b,
0403 t2c,
0404 t2i
0405 FROM (SELECT *
0406 FROM t2
0407 WHERE t2a NOT IN (SELECT t1a
0408 FROM t1
0409 UNION
0410 SELECT t3a
0411 FROM t3)
0412 UNION ALL
0413 SELECT *
0414 FROM t2
0415 WHERE t2a NOT IN (SELECT t1a
0416 FROM t1
0417 INTERSECT
0418 SELECT t2a
0419 FROM t2)) AS t3
0420 WHERE t3.t2a NOT IN (SELECT t1a
0421 FROM t1
0422 INTERSECT
0423 SELECT t2a
0424 FROM t2)
0425 AND t2c IS NOT NULL
0426 ORDER BY t2a;
0427
0428
0429 SELECT Count(DISTINCT(t1a)),
0430 t1b,
0431 t1c,
0432 t1i
0433 FROM t1
0434 WHERE t1b NOT IN
0435 (
0436 SELECT t2b
0437 FROM (
0438 SELECT t2b
0439 FROM t2
0440 WHERE t2b NOT IN
0441 (
0442 SELECT t1b
0443 FROM t1)
0444 UNION
0445 SELECT t1b
0446 FROM t1
0447 WHERE t1b NOT IN
0448 (
0449 SELECT t3b
0450 FROM t3)
0451 UNION
0452 distinct SELECT t3b
0453 FROM t3
0454 WHERE t3b NOT IN
0455 (
0456 SELECT t2b
0457 FROM t2)) AS t3
0458 WHERE t2b = t1b)
0459 GROUP BY t1a,
0460 t1b,
0461 t1c,
0462 t1i
0463 HAVING t1b NOT IN
0464 (
0465 SELECT t2b
0466 FROM t2
0467 WHERE t2c IS NULL
0468 EXCEPT
0469 SELECT t3b
0470 FROM t3)
0471 ORDER BY t1c DESC NULLS LAST, t1i;
0472