Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
u5_databaser [2009-11-10 13:37]
Joakim Forsgren
u5_databaser [2012-10-16 09:31]
Joakim Forsgren
Line 1: Line 1:
 ====== SELECT frågor 5 ====== ====== SELECT frågor 5 ======
-Nu skall nu använda min databas **jf**. Om du inte kommer ihåg hur man loggade in kolla: [[u1_databaser]]\\+Nu skall nu använda min databas **jf_select**. Om du inte kommer ihåg hur man loggade in kolla: [[u1_databaser]]\\
 När det står tips så är det något nytt, det räcker inte enbart med det som står som tips. Ni kommer behöva läsa i manualen för att lyckas skulle jag tro :-)\\ När det står tips så är det något nytt, det räcker inte enbart med det som står som tips. Ni kommer behöva läsa i manualen för att lyckas skulle jag tro :-)\\
 **OBS!** Ni får bara ställa en fråga för att ta fram ert svar, spara de SQL-frågor ni ställer i en textfil.\\ **OBS!** Ni får bara ställa en fråga för att ta fram ert svar, spara de SQL-frågor ni ställer i en textfil.\\
 Följande tabeller finns i databasen jf_select (i princip lika i varje fall…) \\ Följande tabeller finns i databasen jf_select (i princip lika i varje fall…) \\
 {{:selectuppgifter_html_m3687461c.png|}} {{:selectuppgifter_html_m3687461c.png|}}
 +<code SQL># ev Måste ni först ställa om teckentabellen 
 +SET NAMES utf8</code>
  
   - Visa alla fåglar   - Visa alla fåglar
-  - Visa alla kryss som användaren med UserID 3 har. (Visa alla observationer på fåglar som användaren med UserID = 3 har gjort)+  - Visa alla kryss som användaren med UserID 3 har, jag vill se fågelnamnen. (Tips INNER JOIN)
   - Visa alla fåglar som användaren med login = JF har kryssat Tips: INNER JOIN   - Visa alla fåglar som användaren med login = JF har kryssat Tips: INNER JOIN
   - Skriv en fråga som tar fram hur många kryss användaren med UserID=1 har av varje fågel och man får dem sorterade efter antal. **Tips:** COUNT, GROUP BY.Exempel på svar:<code>   - Skriv en fråga som tar fram hur många kryss användaren med UserID=1 har av varje fågel och man får dem sorterade efter antal. **Tips:** COUNT, GROUP BY.Exempel på svar:<code>
Line 47: Line 49:
 osv... osv...
 </code> </code>
-  - Skriv en fråga som visar hur många gånger olika arter har sets från någon tomt. (Plot = 1) sorterat efter vilken fågel som setts av flest personer. (Fågeln får bara räknas en gång per person)<code>+  - Skriv en fråga som visar hur många gånger olika arter har sets från någon tomt. (Plot = 1) sorterat efter vilken fågel som setts av flest personer. (Fågeln får bara räknas en gång per person) Ex på lämpligt svar:<code>
 +-----------------------+-------+ +-----------------------+-------+
 | Name                  | Antal | | Name                  | Antal |
Line 67: Line 69:
 osv.. osv..
 </code> </code>
-  - Skriv en fråga som visar 10 i topplistan för år 2004. (Flest sedda Fågelarter per person) <code>+  - Skriv en fråga som visar 10 i topplistan för år 2004. (Flest sedda Fågelarter per person) Ex på lämpligt svar:<code>
 +--------------------+-------+ +--------------------+-------+
 | Namn               | Antal | | Namn               | Antal |
Line 81: Line 83:
 | Kristina Wiklund     123 | | Kristina Wiklund     123 |
 | Fritz Forsgren       112 | | Fritz Forsgren       112 |
-osv..++--------------------+-------+
 </code> </code>
  
 +<php>
 +/*
 +<code SQL>
 +1.
 +SELECT * FROM Birds;
  
 +2.
 +SELECT * FROM Observations 
 +WHERE UserID=3;
  
 +3.
 +SELECT * FROM Users INNER JOIN Observations USING(UserID)
 +WHERE Login='JF';
 +
 +4.
 +SELECT Name,COUNT(UserID) as Antal 
 +FROM Birds INNER JOIN Observations USING(BirdID) 
 +WHERE UserID=1 
 +GROUP BY BirdID 
 +ORDER BY Antal DESC;
 +
 +5.
 +SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal 
 +FROM Users INNER JOIN Observations USING(UserID) 
 +GROUP BY UserID 
 +ORDER BY Antal DESC;
 +
 +6.
 +SELECT Name,COUNT(DISTINCT UserID) as Antal 
 +FROM Birds INNER JOIN Observations USING(BirdID) 
 +WHERE Plot=1 
 +GROUP BY BirdID ORDER BY Antal DESC;
 +
 +7.
 +SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal 
 +FROM Users INNER JOIN Observations USING(UserID) 
 +WHERE YEAR(Date)=2004 
 +GROUP BY UserID 
 +ORDER BY Antal DESC;
 +</code>
 +*/
 +</php>