Differences
This shows you the differences between two versions of the page.
u4_databaser [2012-03-19 09:00] Joakim Forsgren |
u4_databaser [2022-07-18 13:20] |
||
---|---|---|---|
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 nu 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 | ||
- | |||
- | */ | ||
- | </ | ||