commit a688de98da16bdb72168aff495e22c730b2d6240 (tree)
parent 6d52a88523d23b5fd0503fd4145744c55dfddd39
Author: Motiejus Jakštys <desired.mta@gmail.com>
Date: Sat, 26 Oct 2019 17:01:07 +0300
starting real queries
Diffstat:
1 file changed, 59 insertions(+), 6 deletions(-)
diff --git a/MTM/task4-straipsnis/straipsnis.md b/MTM/task4-straipsnis/straipsnis.md
@@ -24,13 +24,13 @@ Susikurkime PostgreSQL lentelę su viso pasaulio oro uostais (bent tais, kurie
turi [IATA kodą][1]) ir pažaiskime su duomenimis. Turėdami visus pasaulio oro
uostus galime sugalvoti daug klausimų, bet man šiuo metu įdomu:
- kokie du oro uostai yra labiausiai nutolę vienas nuo kito?
-- kurie du oro uosta yra arčiausiai vienas kito?
-- kiek kartų reikia nuskristi United Economy klase iš Vilniaus į San
- Franciską ir atgal (pro Frankfurtą), kad uždirbčiau [nemokamus pusryčius][2] prieš
- skrydį?
+- kurie du oro uosta yra arčiausiai vienas kito? O toje pačioje šalyje?
+- kokį atstumą skristume aplink žemę, jei iš Vilniaus skristume ta pačia platuma?
+- kiek kartų reikia nuskristi United Economy klase aplink žemę Vilniaus
+ platumoje, kad uždirbtume [nemokamus pusryčius][2]?
-Užduoties vykdymas
-------------------
+Duomenų bazės sukūrimas
+-----------------------
Susidarys iš kelių dalių:
- Duomenų bazės sukūrimas.
@@ -45,6 +45,59 @@ jūsų patogumui yra šioje repositorijoje. Sukurkime ir importuokime duomenų b
$ ./managedb init
```
+Sukūrėme duombazę su visais oro uostais; patikrinkime, kas viduje:
+
+```
+psql airportgames <<<"
+SELECT
+ iata,
+ name,
+ to_char(st_y (geom), '999.99') AS latitude,
+ to_char(st_x (geom), '999.99') AS longitude,
+ to_char(st_z (geom), '9999') AS altitude
+FROM
+ airports
+WHERE
+ iata IN ('VNO', 'RIX', 'TLL');
+"
+ iata | name | latitude | longitude | altitude
+------+-------------------------------+----------+-----------+----------
+ TLL | Lennart Meri Tallinn Airport | 59.41 | 24.83 | 40
+ RIX | Riga International Airport | 56.92 | 23.97 | 11
+ VNO | Vilnius International Airport | 54.63 | 25.29 | 198
+```
+
+Užklausos
+---------
+
+**Kokie oro uostai yra labiausiai nutolę vienas nuo kito?**
+
+Išrinkime 10 porų:
+
+```
+SELECT
+ a.country AS a_country,
+ a.name AS a_name,
+ a.iata AS a_iata,
+ b.country AS b_country,
+ b.name AS b_name,
+ b.iata AS b_iata,
+ to_char(st_distance (a.geom, b.geom, TRUE) / 1000, '99999.99') AS distance_km
+FROM
+ airports a,
+ airports b
+WHERE
+ a.gid > b.gid
+ORDER BY
+ distance_km DESC
+LIMIT 10;
+```
+
+
+**Kurie du oro uosta yra arčiausiai vienas kito? O toje pačioje šalyje?**
+**Kokį atstumą skristume aplink žemę, jei iš Vilniaus skristume ta pačia platuma?**
+**Kiek kartų reikia nuskristi United Economy klase aplink žemę Vilniaus
+ platumoje, kad uždirbtume [nemokamus pusryčius][2]?**
[1]: https://en.wikipedia.org/wiki/International_Air_Transport_Association_code