Differences
This shows you the differences between two versions of the page.
u4_databaser [2017-09-01 14:54] |
u4_databaser [2022-07-18 13:20] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== SELECT frågor 4 ====== | ||
+ | <php> | ||
+ | /* | ||
+ | 1. Skriv ett lite PHP-script som lägger in 100 000 datum poster med en slumpad temperatur (Temp) mellan 0 och 20. | ||
+ | Temperaturen skall ha en decimal. | ||
+ | Det första datumet skall vara " | ||
+ | |||
+ | Er PHP-kod för att lägga in data bör inte vara mycket mer än detta: | ||
+ | <code php> | ||
+ | <?php | ||
+ | // Ni måste ju koppla upp er mot databasen mm... | ||
+ | for($i=0; $i< | ||
+ | // $sql = " | ||
+ | $sql = " | ||
+ | mysql_query($sql); | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | Tips! DATE_ADD, RAND, ROUND | ||
+ | |||
+ | Så här kan er tabell se ut... | ||
+ | <code sql> | ||
+ | CREATE TABLE IF NOT EXISTS `Dates` ( | ||
+ | `ID` int(11) NOT NULL auto_increment, | ||
+ | `DateTime` datetime NOT NULL, | ||
+ | `Temp` float NOT NULL, | ||
+ | PRIMARY KEY (`ID`) | ||
+ | ) ENGINE=MyISAM; | ||
+ | </ | ||
+ | |||
+ | //Om ni har lyckats att skapa era poster så kan ni tabort tabellen " | ||
+ | */ | ||
+ | </ | ||
+ | |||
+ | Nu skall du använda min databas **jf**. Om du inte kommer ihåg hur man loggade in kolla: [[u1_databaser]]\\ | ||
+ | Tabellen heter **Dates**. | ||
+ | |||
+ | 1. Ni skall beräkna medeltemperaturen för åren 2000-2005 jag vill också veta hur många temperatur poster det finns registrerade varje år. | ||
+ | ex på lämpligt svar på er SQL-fråga | ||
+ | < | ||
+ | +------+-----------------+-------+ | ||
+ | | Year | avg_Temp | ||
+ | +------+-----------------+-------+ | ||
+ | | 2000 | 10.02464426562 | 1757 | | ||
+ | | 2001 | 10.145547948748 | 1752 | | ||
+ | | 2002 | 10.022888132409 | 1752 | | ||
+ | | 2003 | 10.102796808013 | 1752 | | ||
+ | | 2004 | 9.9797381764033 | 1757 | | ||
+ | | 2005 | 9.8808790016154 | 1752 | | ||
+ | +------+-----------------+-------+ | ||
+ | </ | ||
+ | |||
+ | <php> | ||
+ | /* | ||
+ | SELECT YEAR(DateTime) AS Year, AVG(Temp) AS avg_TEMP, COUNT(ID) AS Antal FROM Dates | ||
+ | WHERE YEAR(DateTime)> | ||
+ | */ | ||
+ | </ | ||
+ | |||
+ | 2. Plocka fram de år som har temperaturer registrerade 366 dagar... | ||
+ | < | ||
+ | +------+------+ | ||
+ | | Year | Days | | ||
+ | +------+------+ | ||
+ | | 1972 | 366 | | ||
+ | | 1976 | 366 | | ||
+ | | 1980 | 366 | | ||
+ | | 1984 | 366 | | ||
+ | | 1988 | 366 | | ||
+ | | 1992 | 366 | | ||
+ | | 1996 | 366 | | ||
+ | | 2000 | 366 | | ||
+ | | 2004 | 366 | | ||
+ | | 2008 | 366 | | ||
+ | | 2012 | 366 | | ||
+ | | 2016 | 366 | | ||
+ | | 2020 | 366 | | ||
+ | | 2024 | 366 | | ||
+ | +------+------+ | ||
+ | </ | ||
+ | <php> | ||
+ | /* | ||
+ | SELECT YEAR(DateTime) as Year , | ||
+ | Days FROM Dates GROUP BY YEAR(Datetime) HAVING Days=366; | ||
+ | alt. | ||
+ | SELECT * FROM (SELECT YEAR(DateTime) as Year , | ||
+ | Days FROM Dates GROUP BY YEAR(Datetime)) as foo WHERE Days=366 | ||
+ | |||
+ | */ | ||
+ | </ | ||