2023. február 22., szerda

2023.02.22., 28. Vízállás sql feladat

 Kész, ellenőriztük.

/*Vízállás

1. feladat*/
CREATE DATABASE vizallas
  CHARACTER SET utf8
  COLLATE utf8_hungarian_ci;
/*3. feladat
Adja meg lekérdezés segítségével, hogy
 2002 szilveszterén (2002. 12. 31.)
az egyes településeken milyen vízállást mértek!
A lekérdezés a város nevét és a vízállást jelenítse meg! */
SELECT varos, vizallas
FROM meres
WHERE meres.datum = '2002-12-31';

/*4. feladat
Lekérdezés segítségével jelenítse meg, hogy
 mely városok szerepelnek az adatbázisban!
 A városok nevét rendezze ábécé sorrendbe,
  és mindegyik csak egyszer jelenjen meg! */
SELECT meres.varos
FROM meres
GROUP BY meres.varos
ORDER BY meres.varos;

SELECT  distinct varos
FROM meres
ORDER BY meres.varos;

/*5.feladat
Készítsen lekérdezést, amely megadja, hogy a Tiszán
hány alkalommal mértek 9 méternél nagyobb vízállást! */
SELECT COUNT(meres.id)
FROM meres
WHERE (meres.folyo like 'Tisza')
 AND (meres.vizallas > 900);

/*6. feladat
Készítsen lekérdezést, amely megadja,
hogy Budapesten a legmagasabb vízállást
mely napon mérték! */
SELECT datum
FROM meres
WHERE varos like 'Budapest'
ORDER BY vizallas DESC
LIMIT 1 ;

////////////////////////////////////////////////////////////////////////
/*RÁVEZETŐ FELADATOK (nem a helyes megoldások):
Ez a megoldás kiírja az összes mérési dátumot Budapesten
(nem felel meg a feladatnak):*/
  SELECT datum
FROM meres
WHERE meres.varos like 'Budapest';

/*Ez kiírja a helyes maximális vízállást Budapesten
 (nem ezt a mezőt kérte a feladat).*/
SELECT max(vizallas)
FROM meres
WHERE meres.varos like 'Budapest';

/*Ez kiírja a helyes maximális vízállást Budapesten,
viszont előtte a budapesti összes dátumból
 az első jelenik csak meg. (rossz megoldás)*/
SELECT datum, max(vizallas)
FROM meres
WHERE meres.varos like 'Budapest';

/*Ez kiírja a helyes maximális vízállást Budapesten
 (nem ezt kérte a feladat).
(Emellé már nem tudunk más mezőt kiírni korrekten.)*/
SELECT max(vizallas)
FROM meres
GROUP BY varos
HAVING varos = 'Budapest';

/*Végképp rossz megoldás:
Ez kiírja a helyes maximális vízállást Budapesten, de a mellette levő dátum
a táblába bevitt legelső dátum lesz - és ezek nem tartoznak egymáshoz.*/
/*SELECT max(vizallas), datum
FROM meres
GROUP BY varos
HAVING varos = 'Budapest';*/

/*Az alselect megkeresi a maximális budapesti vízállást
 és a fő lekérdezés kiírja azt a két dátumot,
amikor az volt a vízállás.*/
SELECT datum
FROM meres
WHERE vizallas =
(SELECT max(vizallas) FROM meres
 WHERE meres.varos like 'Budapest');

/*Az alselect megkeresi a maximális budapesti vízállást és a fő lekérdezés kiírja azt az első dátumot,
amikor az volt a vízállás.*/
SELECT datum
FROM meres
WHERE vizallas = (SELECT max(vizallas) FROM meres
 WHERE meres.varos like 'Budapest')
ORDER BY datum desc
LIMIT 1;

////////////////////////////////////////////////////////////////////////

/*7. feladat
Az adatbázisban nyilvántartott legmagasabb vízállás 928 cm.
 Készítsen lekérdezést, amely megadja, hogy ezzel egy napon
 a Duna mentén melyik településen milyen vízállást mértek!*/
SELECT meres.varos
FROM meres
WHERE (meres.folyo like 'Duna') AND
(meres.datum = (SELECT meres.datum FROM meres
WHERE (meres.vizallas = 928)));

/*8. feladat
Készítsen lekérdezést, amely folyónként kiírja a vízállásokat,
 és a mérés dátumát, a dátum szerinti  növekvő sorrendben. */
select meres.folyo, meres.vizallas, meres.datum
  from meres
  order by folyo, datum;


/*9. feladat
  Készítsen lekérdezést, amely folyónként kiírja
   a legalacsonyabb vízállást. */
  select folyo, min(meres.vizallas)
    from meres
  group by folyo;


2024.04.25. Időjárás app

 Feladat: Időjárás app - OOP módszerekkel, haladóknak adatkötéssel Az alkalmazás célja, hogy a felhasználók hozzáadjanak és eltávolítsanak v...