This is an old revision of the document!


SELECT frågor 4

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 “1970-01-01 00:00:00” sen skall det in en post var 5:e timme.

Er PHP-kod för att lägga in data bör inte vara mycket mer än detta:

<?php
// Ni måste ju koppla upp er mot databasen mm...
for($i=0; $i<100000; $i++) {
    $sql =  "INSERT INTO `Dates` (`DateTime` ,`Temp`) VALUES (...resten ska ni göra själva...";
    mysql_query($sql);
}
?>

Tips! DATE_ADD, RAND, ROUND

Så här kan er tabell se ut…

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 “Dates” om ni vill…

Nu skall nu använda min databas jf. Om du inte kommer ihåg hur man loggade in kolla: SELECT frågor 1
Tabellen heter Dates. Tanken med att använda min databas är att ni skall kunna se om ni har gjort rätt…

2. Ni skall beräkna medeltemperaturen för åren 2000-2005 jag vill också veta hur många temperaturen det finns registrerade varje år. ex på lämpligt svar på er SQL-fråga

+------+-----------------+-------+
| Year | avg_Temp        | Antal |
+------+-----------------+-------+
| 2000 |  10.02464426562 |  1757 | 
| 2001 | 10.145547948748 |  1752 | 
| 2002 | 10.022888132409 |  1752 | 
| 2003 | 10.102796808013 |  1752 | 
| 2004 | 9.9797381764033 |  1757 | 
| 2005 | 9.8808790016154 |  1752 | 
+------+-----------------+-------+

3. 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 |
+------+------+