CREATE TABLE palk( aasta INT NOT NULL, piirkond VARCHAR(30) NOT NULL, brutotasu FLOAT NOT NULL, isikuid INT NOT NULL, PRIMARY KEY (aasta, piirkond) ); ="INSERT INTO palk VALUES (" & A1 & ", '" & B1 & "', " & C1 & ", " & D1 & ");" INSERT INTO palk VALUES (2003, 'Põhja-Eesti', 475.82222, 189111); INSERT INTO palk VALUES (2003, 'Kesk-Eesti', 365.57463, 46051); INSERT INTO palk VALUES (2003, 'Kirde-Eesti', 321.60342, 52580); INSERT INTO palk VALUES (2003, 'Lääne-Eesti', 371.00712, 57473); INSERT INTO palk VALUES (2003, 'Lõuna-Eesti', 362.82643, 104654); INSERT INTO palk VALUES (2014, 'Põhja-Eesti', 1061.03, 236307); INSERT INTO palk VALUES (2014, 'Kesk-Eesti', 876.55, 49649); INSERT INTO palk VALUES (2014, 'Kirde-Eesti', 806.67, 53619); INSERT INTO palk VALUES (2014, 'Lääne-Eesti', 863.01, 58781); INSERT INTO palk VALUES (2014, 'Lõuna-Eesti', 886.79, 119214); -- Erinevad piirkonnad SELECT DISTINCT piirkond FROM palk; +---------------+ | piirkond | +---------------+ | Kesk-Eesti | | Kirde-Eesti | | Lõuna-Eesti | | Lääne-Eesti | | Põhja-Eesti | +---------------+ SELECT SUM(brutotasu) FROM palk GROUP BY piirkond; +--------------------+ | SUM(brutotasu) | +--------------------+ | 1242.1246032714844 | | 1128.2734069824219 | | 1249.6163940429688 | | 1234.0171203613281 | | 1536.8522644042969 | +--------------------+ SELECT piirkond, SUM(brutotasu) FROM palk GROUP BY piirkond; +---------------+--------------------+ | piirkond | SUM(brutotasu) | +---------------+--------------------+ | Kesk-Eesti | 1242.1246032714844 | | Kirde-Eesti | 1128.2734069824219 | | Lõuna-Eesti | 1249.6163940429688 | | Lääne-Eesti | 1234.0171203613281 | | Põhja-Eesti | 1536.8522644042969 | +---------------+--------------------+ -- Leidke keskmine brutotasu piirkondade kaupa SELECT piirkond, AVG(brutotasu) FROM palk GROUP BY piirkond; -- Leidke keskmine brutotasu aastate kaupa SELECT aasta, AVG(brutotasu) FROM palk GROUP BY aasta; -- Leidke iga piirkonna suurima ja vähima keskmise sissetuleku vahe SELECT piirkond, MAX(brutotasu)-MIN(brutotasu) FROM palk GROUP BY piirkond; SELECT piirkond, MAX(brutotasu)-MIN(brutotasu) AS vahe FROM palk GROUP BY piirkond ORDER BY vahe; +---------------+-------------------+ | piirkond | vahe | +---------------+-------------------+ | Kirde-Eesti | 485.0665588378906 | | Lääne-Eesti | 492.0028991699219 | | Kesk-Eesti | 510.9753723144531 | | Lõuna-Eesti | 523.9635620117188 | | Põhja-Eesti | 585.2077941894531 | +---------------+-------------------+ mysql> SELECT AVG(brutotasu) FROM palk WHERE aasta=2014; +-------------------+ | AVG(brutotasu) | +-------------------+ | 898.8099975585938 | +-------------------+ 1 row in set (0.00 sec) Alla keskmise palgaga piirkonnad: SELECT piirkond FROM palk WHERE brutotasu < 899 AND aasta=2014; mysql> SELECT @keskmine:=AVG(brutotasu) FROM palk WHERE aasta=2014; +---------------------------+ | @keskmine:=AVG(brutotasu) | +---------------------------+ | 898.8099975585938 | +---------------------------+ 1 row in set (0.00 sec) mysql> SELECT @keskmine; +-------------------+ | @keskmine | +-------------------+ | 898.8099975585938 | +-------------------+ 1 row in set (0.00 sec) mysql> SELECT piirkond, brutotasu FROM palk WHERE brutotasu < @keskmine AND aasta=2014; +---------------+-----------+ | piirkond | brutotasu | +---------------+-----------+ | Kesk-Eesti | 876.55 | | Kirde-Eesti | 806.67 | | Lõuna-Eesti | 886.79 | | Lääne-Eesti | 863.01 | +---------------+-----------+ SELECT piirkond, brutotasu FROM palk WHERE brutotasu < (SELECT AVG(brutotasu) FROM palk WHERE aasta=2014) AND aasta=2014; -- Leia piirkond, kus brutotasu oli aastal 2014 madalaim. SELECT piirkond, brutotasu FROM palk WHERE brutotasu = (SELECT MIN(brutotasu) FROM palk WHERE aasta=2014) AND aasta=2014; SELECT piirkond, brutotasu FROM palk WHERE aasta=2014 ORDER BY brutotasu LIMIT 1; +-------------+-----------+ | piirkond | brutotasu | +-------------+-----------+ | Kirde-Eesti | 806.67 | +-------------+-----------+ 1 row in set (0.00 sec) -- Leia piirkonnad, kus brutotasu on miinimum või sellest kuni 60 EUR kõrgem aastal 2014 SELECT piirkond, brutotasu FROM palk WHERE brutotasu < (SELECT MIN(brutotasu) FROM palk WHERE aasta=2014)+60 AND aasta=2014; +---------------+-----------+ | piirkond | brutotasu | +---------------+-----------+ | Kirde-Eesti | 806.67 | | Lääne-Eesti | 863.01 | +---------------+-----------+ -- Leia piirkonnad, kus brutotasu on alumises kolmandikus aastal 2014 SELECT piirkond, brutotasu FROM palk WHERE brutotasu < (SELECT MIN(brutotasu)+(MAX(brutotasu)-MIN(brutotasu))/3 FROM palk WHERE aasta=2014) AND aasta=2014; SELECT piirkond, brutotasu FROM palk WHERE brutotasu < (SELECT MIN(brutotasu)+(MAX(brutotasu)-MIN(brutotasu))/4 FROM palk WHERE aasta=2014) AND aasta=2014; -- Leia piirkonna brutotasu erinevus konkreetse aasta piirkondade keskmisest brutotasust. SELECT piirkond, aasta, brutotasu, brutotasu-(SELECT AVG(brutotasu) FROM palk AS p2 WHERE p1.aasta=p2.aasta) AS vahe FROM palk AS p1; +---------------+-------+-----------+---------------------+ | piirkond | aasta | brutotasu | vahe | +---------------+-------+-----------+---------------------+ | Kesk-Eesti | 2003 | 365.575 | -13.792144775390625 | | Kirde-Eesti | 2003 | 321.603 | -57.763336181640625 | | Lõuna-Eesti | 2003 | 362.826 | -16.54034423828125 | | Lääne-Eesti | 2003 | 371.007 | -8.359649658203125 | | Põhja-Eesti | 2003 | 475.822 | 96.45547485351562 | | Kesk-Eesti | 2014 | 876.55 | -22.260009765625 | | Kirde-Eesti | 2014 | 806.67 | -92.1400146484375 | | Lõuna-Eesti | 2014 | 886.79 | -12.02001953125 | | Lääne-Eesti | 2014 | 863.01 | -35.79998779296875 | | Põhja-Eesti | 2014 | 1061.03 | 162.22003173828125 | +---------------+-------+-----------+---------------------+ SELECT piirkond, aasta, ROUND(vahe, 2) FROM (SELECT piirkond, aasta, brutotasu, brutotasu-(SELECT AVG(brutotasu) FROM palk AS p2 WHERE p1.aasta=p2.aasta) AS vahe FROM palk AS p1) AS tabel1 ORDER BY aasta, vahe; +---------------+-------+----------------+ | piirkond | aasta | ROUND(vahe, 2) | +---------------+-------+----------------+ | Kirde-Eesti | 2003 | -57.76 | | Lõuna-Eesti | 2003 | -16.54 | | Kesk-Eesti | 2003 | -13.79 | | Lääne-Eesti | 2003 | -8.36 | | Põhja-Eesti | 2003 | 96.46 | | Kirde-Eesti | 2014 | -92.14 | | Lääne-Eesti | 2014 | -35.80 | | Kesk-Eesti | 2014 | -22.26 | | Lõuna-Eesti | 2014 | -12.02 | | Põhja-Eesti | 2014 | 162.22 | +---------------+-------+----------------+ SELECT piirkond, aasta, brutotasu FROM palk WHERE aasta=2003; SELECT piirkond, aasta, brutotasu, ROUND((SELECT brutotasu FROM palk AS p2 WHERE aasta=2014 AND p1.piirkond=p2.piirkond), 2) AS bruto2014 FROM palk AS p1 WHERE aasta=2003; +---------------+-------+-----------+-----------+ | piirkond | aasta | brutotasu | bruto2014 | +---------------+-------+-----------+-----------+ | Kesk-Eesti | 2003 | 365.575 | 876.55 | | Kirde-Eesti | 2003 | 321.603 | 806.67 | | Lõuna-Eesti | 2003 | 362.826 | 886.79 | | Lääne-Eesti | 2003 | 371.007 | 863.01 | | Põhja-Eesti | 2003 | 475.822 | 1061.03 | +---------------+-------+-----------+-----------+