Skip to content

Instantly share code, notes, and snippets.

@qoega
Last active November 4, 2021 20:18
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qoega/32c4f54da6b0324aef8cd8d910dd7c7f to your computer and use it in GitHub Desktop.
Save qoega/32c4f54da6b0324aef8cd8d910dd7c7f to your computer and use it in GitHub Desktop.
CREATE TABLE payment_types (
payment_type UInt8,
description String
)
ENGINE = MergeTree
ORDER BY payment_type;
INSERT INTO payment_types(payment_type, description) VALUES
(1, 'credit card'),
(2, 'cash'),
(3, 'no charge'),
(4, 'dispute'),
(5, 'unknown'),
(6, 'voided trip');
CREATE TABLE rates (
rate_code UInt8,
description String
)
ENGINE = MergeTree
ORDER BY rate_code;
INSERT INTO rates(rate_code, description) VALUES
(1, 'standard rate'),
(2, 'JFK'),
(3, 'Newark'),
(4, 'Nassau or Westchester'),
(5, 'negotiated fare'),
(6, 'group ride');
SELECT
rates.description,
COUNT(vendor_id) AS num_trips,
AVG(dropoff_datetime - pickup_datetime) AS avg_trip_duration,
AVG(total_amount) AS avg_total,
AVG(tip_amount) AS avg_tip,
MIN(trip_distance) AS min_distance,
AVG(trip_distance) AS avg_distance,
MAX(trip_distance) AS max_distance,
AVG(passenger_count) AS avg_passengers
FROM rides
INNER JOIN rates ON rides.rate_code = rates.rate_code
WHERE (rides.rate_code IN (2, 3)) AND (pickup_datetime < '2016-02-01')
GROUP BY rates.description
ORDER BY rates.description ASC
Query id: 35bae497-3cf1-40ab-b86e-08b2d32462cd
┌─description─┬─num_trips─┬──avg_trip_duration─┬─────────avg_total─┬───────────avg_tip─┬─min_distance─┬───────avg_distance─┬─max_distance─┬────avg_passengers─┐
│ JFK │ 225019 │ 2746.8225172096577 │ 64.32781102360629 │ 7.333422817827029 │ 0 │ 17.260281665103843 │ 221 │ 1.733386958434621 │
│ Newark │ 16822 │ 2116.157472357627 │ 86.46336993224668 │ 9.546165732798725 │ 0 │ 16.270612293425284 │ 177.23 │ 1.743550112947331 │
└─────────────┴───────────┴────────────────────┴───────────────────┴───────────────────┴──────────────┴────────────────────┴──────────────┴───────────────────┘
2 rows in set. Elapsed: 0.091 sec. Processed 10.91 million rows, 458.09 MB (120.15 million rows/s., 5.05 GB/s.)
SELECT
toHour(pickup_datetime) AS hours,
trunc(toMinute(pickup_datetime) / 5) * 5 AS five_mins,
COUNT(*)
FROM rides
WHERE pickup_datetime < '2016-01-02 00:00:00'
GROUP BY
hours,
five_mins
Query id: 40829da7-e816-4679-9cf5-9ddf65e3c07f
┌─hours─┬─five_mins─┬─count()─┐
│ 0 │ 0 │ 703 │
│ 0 │ 35 │ 2328 │
│ 12 │ 55 │ 1195 │
│ 13 │ 45 │ 1370 │
│ 20 │ 10 │ 1100 │
│ 7 │ 0 │ 476 │
│ 15 │ 20 │ 1351 │
│ 16 │ 50 │ 1182 │
│ 3 │ 30 │ 1784 │
│ 17 │ 40 │ 1328 │
│ 14 │ 25 │ 1333 │
│ 10 │ 55 │ 843 │
│ 6 │ 35 │ 524 │
│ 18 │ 10 │ 1327 │
│ 11 │ 45 │ 1120 │
│ 1 │ 0 │ 2395 │
│ 5 │ 30 │ 629 │
│ 22 │ 50 │ 1146 │
│ 9 │ 20 │ 488 │
│ 8 │ 25 │ 404 │
│ 23 │ 40 │ 1142 │
│ 1 │ 15 │ 2482 │
│ 20 │ 45 │ 1136 │
│ 13 │ 10 │ 1276 │
│ 5 │ 5 │ 858 │
│ 21 │ 55 │ 1095 │
│ 23 │ 25 │ 988 │
│ 8 │ 40 │ 441 │
│ 9 │ 50 │ 568 │
│ 22 │ 20 │ 1110 │
│ 11 │ 10 │ 798 │
│ 18 │ 45 │ 1508 │
│ 7 │ 15 │ 459 │
│ 3 │ 5 │ 1927 │
│ 19 │ 55 │ 1192 │
│ 14 │ 40 │ 1397 │
│ 17 │ 25 │ 1272 │
│ 16 │ 20 │ 1223 │
│ 15 │ 50 │ 1386 │
│ 22 │ 0 │ 1103 │
│ 18 │ 30 │ 1448 │
│ 1 │ 50 │ 2316 │
│ 0 │ 40 │ 2440 │
│ 13 │ 5 │ 1204 │
│ 17 │ 35 │ 1297 │
│ 5 │ 10 │ 733 │
│ 9 │ 15 │ 510 │
│ 16 │ 0 │ 1308 │
│ 7 │ 50 │ 413 │
│ 20 │ 30 │ 1135 │
│ 6 │ 40 │ 508 │
│ 11 │ 5 │ 861 │
│ 23 │ 35 │ 1100 │
│ 15 │ 15 │ 1380 │
│ 3 │ 10 │ 1896 │
│ 6 │ 25 │ 510 │
│ 15 │ 0 │ 1315 │
│ 11 │ 30 │ 1006 │
│ 7 │ 20 │ 451 │
│ 5 │ 45 │ 560 │
│ 16 │ 15 │ 1256 │
│ 20 │ 5 │ 1091 │
│ 4 │ 55 │ 879 │
│ 8 │ 35 │ 421 │
│ 0 │ 25 │ 2291 │
│ 9 │ 0 │ 410 │
│ 1 │ 20 │ 2428 │
│ 13 │ 30 │ 1282 │
│ 22 │ 15 │ 1130 │
│ 3 │ 45 │ 1619 │
│ 18 │ 5 │ 1377 │
│ 14 │ 35 │ 1475 │
│ 2 │ 55 │ 1975 │
│ 7 │ 35 │ 418 │
│ 11 │ 55 │ 1133 │
│ 10 │ 45 │ 788 │
│ 19 │ 10 │ 1426 │
│ 8 │ 20 │ 408 │
│ 23 │ 50 │ 1149 │
│ 4 │ 30 │ 1230 │
│ 22 │ 40 │ 1167 │
│ 9 │ 25 │ 456 │
│ 13 │ 55 │ 1389 │
│ 1 │ 35 │ 2366 │
│ 21 │ 10 │ 1113 │
│ 12 │ 45 │ 1228 │
│ 2 │ 30 │ 2135 │
│ 17 │ 50 │ 1423 │
│ 14 │ 20 │ 1355 │
│ 6 │ 0 │ 551 │
│ 15 │ 25 │ 1322 │
│ 16 │ 40 │ 1184 │
│ 6 │ 15 │ 501 │
│ 19 │ 45 │ 1246 │
│ 10 │ 10 │ 669 │
│ 18 │ 55 │ 1358 │
│ 2 │ 5 │ 2259 │
│ 16 │ 25 │ 1223 │
│ 15 │ 40 │ 1355 │
│ 14 │ 50 │ 1444 │
│ 17 │ 20 │ 1303 │
│ 12 │ 10 │ 1157 │
│ 21 │ 45 │ 1127 │
│ 0 │ 15 │ 2200 │
│ 20 │ 55 │ 1087 │
│ 4 │ 5 │ 1608 │
│ 9 │ 40 │ 542 │
│ 22 │ 25 │ 1098 │
│ 23 │ 20 │ 1032 │
│ 8 │ 50 │ 427 │
│ 21 │ 30 │ 1104 │
│ 6 │ 50 │ 479 │
│ 17 │ 0 │ 1228 │
│ 7 │ 40 │ 417 │
│ 22 │ 35 │ 1189 │
│ 10 │ 5 │ 592 │
│ 2 │ 10 │ 2253 │
│ 14 │ 15 │ 1328 │
│ 0 │ 50 │ 2388 │
│ 19 │ 30 │ 1321 │
│ 23 │ 0 │ 1139 │
│ 1 │ 40 │ 2325 │
│ 16 │ 35 │ 1269 │
│ 12 │ 5 │ 1156 │
│ 8 │ 15 │ 447 │
│ 4 │ 10 │ 1533 │
│ 1 │ 25 │ 2433 │
│ 12 │ 30 │ 1119 │
│ 0 │ 20 │ 2285 │
│ 8 │ 0 │ 396 │
│ 2 │ 45 │ 2049 │
│ 23 │ 15 │ 986 │
│ 3 │ 55 │ 1598 │
│ 15 │ 35 │ 1346 │
│ 19 │ 5 │ 1368 │
│ 7 │ 25 │ 450 │
│ 6 │ 20 │ 500 │
│ 10 │ 30 │ 706 │
│ 14 │ 0 │ 1423 │
│ 17 │ 15 │ 1242 │
│ 4 │ 45 │ 1023 │
│ 9 │ 35 │ 539 │
│ 5 │ 55 │ 554 │
│ 21 │ 5 │ 1025 │
│ 23 │ 55 │ 1063 │
│ 7 │ 5 │ 456 │
│ 15 │ 10 │ 1330 │
│ 3 │ 15 │ 1840 │
│ 22 │ 45 │ 1247 │
│ 11 │ 50 │ 1165 │
│ 20 │ 20 │ 1105 │
│ 21 │ 25 │ 1068 │
│ 10 │ 40 │ 739 │
│ 17 │ 55 │ 1367 │
│ 1 │ 5 │ 2510 │
│ 16 │ 45 │ 1208 │
│ 5 │ 15 │ 776 │
│ 9 │ 10 │ 487 │
│ 18 │ 20 │ 1370 │
│ 13 │ 50 │ 1430 │
│ 12 │ 40 │ 1194 │
│ 19 │ 25 │ 1315 │
│ 22 │ 10 │ 1126 │
│ 15 │ 45 │ 1353 │
│ 14 │ 55 │ 1352 │
│ 2 │ 35 │ 2047 │
│ 19 │ 40 │ 1280 │
│ 12 │ 25 │ 1122 │
│ 1 │ 30 │ 2337 │
│ 13 │ 20 │ 1272 │
│ 18 │ 50 │ 1543 │
│ 5 │ 0 │ 837 │
│ 9 │ 45 │ 564 │
│ 16 │ 10 │ 1185 │
│ 4 │ 35 │ 1171 │
│ 8 │ 55 │ 412 │
│ 10 │ 25 │ 667 │
│ 21 │ 40 │ 1101 │
│ 20 │ 50 │ 1039 │
│ 11 │ 20 │ 893 │
│ 7 │ 30 │ 440 │
│ 3 │ 0 │ 1966 │
│ 5 │ 20 │ 662 │
│ 9 │ 30 │ 456 │
│ 13 │ 0 │ 1234 │
│ 4 │ 25 │ 1303 │
│ 10 │ 35 │ 662 │
│ 6 │ 55 │ 483 │
│ 22 │ 5 │ 1199 │
│ 7 │ 45 │ 426 │
│ 18 │ 15 │ 1352 │
│ 15 │ 30 │ 1411 │
│ 3 │ 20 │ 1917 │
│ 11 │ 0 │ 779 │
│ 2 │ 25 │ 2131 │
│ 0 │ 55 │ 2473 │
│ 12 │ 35 │ 1181 │
│ 16 │ 5 │ 1278 │
│ 20 │ 15 │ 1118 │
│ 1 │ 45 │ 2257 │
│ 2 │ 40 │ 2086 │
│ 3 │ 50 │ 1655 │
│ 16 │ 30 │ 1204 │
│ 20 │ 0 │ 1154 │
│ 11 │ 15 │ 881 │
│ 7 │ 10 │ 447 │
│ 19 │ 35 │ 1260 │
│ 15 │ 5 │ 1327 │
│ 4 │ 40 │ 1092 │
│ 22 │ 30 │ 1197 │
│ 5 │ 50 │ 555 │
│ 18 │ 0 │ 1365 │
│ 1 │ 10 │ 2412 │
│ 13 │ 15 │ 1285 │
│ 21 │ 35 │ 1083 │
│ 9 │ 5 │ 454 │
│ 0 │ 5 │ 1482 │
│ 16 │ 55 │ 1266 │
│ 8 │ 10 │ 409 │
│ 4 │ 15 │ 1468 │
│ 17 │ 45 │ 1444 │
│ 12 │ 50 │ 1174 │
│ 19 │ 20 │ 1365 │
│ 18 │ 25 │ 1316 │
│ 13 │ 40 │ 1420 │
│ 6 │ 5 │ 519 │
│ 22 │ 55 │ 1030 │
│ 23 │ 45 │ 1145 │
│ 2 │ 15 │ 2176 │
│ 14 │ 10 │ 1293 │
│ 21 │ 20 │ 1102 │
│ 10 │ 50 │ 814 │
│ 11 │ 40 │ 1114 │
│ 20 │ 25 │ 1060 │
│ 17 │ 10 │ 1285 │
│ 8 │ 45 │ 374 │
│ 9 │ 55 │ 581 │
│ 5 │ 35 │ 624 │
│ 20 │ 40 │ 1098 │
│ 11 │ 25 │ 977 │
│ 2 │ 0 │ 2303 │
│ 6 │ 30 │ 497 │
│ 10 │ 20 │ 703 │
│ 21 │ 50 │ 1086 │
│ 14 │ 45 │ 1439 │
│ 23 │ 10 │ 1065 │
│ 3 │ 35 │ 1607 │
│ 15 │ 55 │ 1263 │
│ 13 │ 25 │ 1280 │
│ 18 │ 40 │ 1475 │
│ 4 │ 0 │ 1684 │
│ 19 │ 50 │ 1216 │
│ 12 │ 20 │ 1203 │
│ 0 │ 30 │ 2349 │
│ 10 │ 0 │ 596 │
│ 2 │ 20 │ 2138 │
│ 14 │ 30 │ 1367 │
│ 3 │ 25 │ 1816 │
│ 17 │ 5 │ 1323 │
│ 13 │ 35 │ 1252 │
│ 1 │ 55 │ 2250 │
│ 0 │ 45 │ 2372 │
│ 21 │ 15 │ 1127 │
│ 12 │ 0 │ 1132 │
│ 8 │ 30 │ 396 │
│ 4 │ 20 │ 1430 │
│ 5 │ 25 │ 703 │
│ 23 │ 5 │ 1082 │
│ 7 │ 55 │ 401 │
│ 11 │ 35 │ 1025 │
│ 19 │ 15 │ 1372 │
│ 6 │ 45 │ 463 │
│ 5 │ 40 │ 611 │
│ 19 │ 0 │ 1308 │
│ 4 │ 50 │ 998 │
│ 23 │ 30 │ 1032 │
│ 12 │ 15 │ 1166 │
│ 0 │ 10 │ 1959 │
│ 8 │ 5 │ 405 │
│ 20 │ 35 │ 1126 │
│ 3 │ 40 │ 1652 │
│ 21 │ 0 │ 1042 │
│ 17 │ 30 │ 1335 │
│ 2 │ 50 │ 1938 │
│ 6 │ 10 │ 516 │
│ 10 │ 15 │ 656 │
│ 14 │ 5 │ 1346 │
│ 18 │ 35 │ 1341 │
└───────┴───────────┴─────────┘
288 rows in set. Elapsed: 0.010 sec. Processed 352.26 thousand rows, 1.41 MB (35.97 million rows/s., 143.88 MB/s.)
-- ClickHouse supports geo functions and different GeoHash functions without installing plugins.
SELECT
toStartOfInterval(pickup_datetime, toIntervalMinute(30)) AS thirty_min,
COUNT(*) AS near_times_sq
FROM rides
WHERE (greatCircleDistance(-73.9851, 40.7589, pickup_longitude, pickup_latitude) < 400) AND (pickup_datetime < '2016-01-01 14:00:00')
GROUP BY thirty_min
ORDER BY thirty_min ASC
Query id: 6747acaa-d043-4135-8694-fd5a19648729
┌──────────thirty_min─┬─near_times_sq─┐
│ 2016-01-01 00:00:00 │ 73 │
│ 2016-01-01 00:30:00 │ 101 │
│ 2016-01-01 01:00:00 │ 120 │
│ 2016-01-01 01:30:00 │ 98 │
│ 2016-01-01 02:00:00 │ 111 │
│ 2016-01-01 02:30:00 │ 109 │
│ 2016-01-01 03:00:00 │ 163 │
│ 2016-01-01 03:30:00 │ 181 │
│ 2016-01-01 04:00:00 │ 215 │
│ 2016-01-01 04:30:00 │ 186 │
│ 2016-01-01 05:00:00 │ 158 │
│ 2016-01-01 05:30:00 │ 114 │
│ 2016-01-01 06:00:00 │ 101 │
│ 2016-01-01 06:30:00 │ 92 │
│ 2016-01-01 07:00:00 │ 88 │
│ 2016-01-01 07:30:00 │ 60 │
│ 2016-01-01 08:00:00 │ 72 │
│ 2016-01-01 08:30:00 │ 95 │
│ 2016-01-01 09:00:00 │ 114 │
│ 2016-01-01 09:30:00 │ 118 │
│ 2016-01-01 10:00:00 │ 136 │
│ 2016-01-01 10:30:00 │ 160 │
│ 2016-01-01 11:00:00 │ 212 │
│ 2016-01-01 11:30:00 │ 230 │
│ 2016-01-01 12:00:00 │ 245 │
│ 2016-01-01 12:30:00 │ 228 │
│ 2016-01-01 13:00:00 │ 237 │
│ 2016-01-01 13:30:00 │ 239 │
└─────────────────────┴───────────────┘
28 rows in set. Elapsed: 0.011 sec. Processed 196.61 thousand rows, 4.33 MB (17.79 million rows/s., 391.37 MB/s.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment