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
birds_databaser [2014-04-14 20:49]
Joakim Forsgren
birds_databaser [2019-09-18 10:16]
Joakim Forsgren
Line 1: Line 1:
-====== SELECT frågor repetition ======+====== SELECT frågor med join ======
 Nu skall nu använda min databas **jf_select**. (login: jf_select, passwd: jf_select) Nu skall nu använda min databas **jf_select**. (login: jf_select, passwd: jf_select)
 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 (mysql4.txt). När ni är klar “commitar” och “pushar” ni filen.\\
 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|}}
Line 18: Line 18:
   - Visa alla fåglar, sorterat på namn.   - Visa alla fåglar, sorterat på namn.
   - Visa alla fåglar, sorterat på artlistan (alltså efter Sort).   - Visa alla fåglar, sorterat på artlistan (alltså efter Sort).
 +  - Visa de 10 första fåglarna, sorterat på artlistan (alltså efter Sort).
   - Visa alla fåglar som har **trast** i sitt namn (18 st).   - Visa alla fåglar som har **trast** i sitt namn (18 st).
-  - Visa alla fåglar som börjar på  **stor** (8 st).+  - Visa alla fåglar som börjar på **stor** (8 st). 
 +  - Visa alla fåglar som slutar på **ett** (6 st).
   - Visa alla kryss som användaren med UserID 3 har, jag vill se fågelnamnen. (Tips INNER JOIN)   - 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 x 2
   - 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 40: Line 42:
 osv... osv...
 </code> </code>
 +  - Gör om frågan så att man bara ser de fåglar som JF har fler än 4 observationer av.
 +  - Gör om frågan så att man bara ser de fåglar som JF har 1 observation av.<code>
 +Nu börjar det bli svårt...</code>
   - Skriv en fråga som tar fram hur många olika fågelarter varje användare har. Tips: COUNT (DISTINCT… Ex på lämpligt svar:<code>   - Skriv en fråga som tar fram hur många olika fågelarter varje användare har. Tips: COUNT (DISTINCT… Ex på lämpligt svar:<code>
 +-----------+-----------------+-------+ +-----------+-----------------+-------+
Line 103: Line 108:
 SELECT * FROM Birds; SELECT * FROM Birds;
  
-2.+9.
 SELECT * FROM Observations  SELECT * FROM Observations 
 WHERE UserID=3; WHERE UserID=3;
  
-3.+10.
 SELECT * FROM Users INNER JOIN Observations USING(UserID) SELECT * FROM Users INNER JOIN Observations USING(UserID)
 WHERE Login='JF'; WHERE Login='JF';
  
-4.+11.
 SELECT Name,COUNT(UserID) as Antal  SELECT Name,COUNT(UserID) as Antal 
 FROM Birds INNER JOIN Observations USING(BirdID)  FROM Birds INNER JOIN Observations USING(BirdID) 
Line 118: Line 123:
 ORDER BY Antal DESC; ORDER BY Antal DESC;
  
-5.+12. 
 +SELECT Name,COUNT(UserID) as Antal  FROM Birds INNER JOIN Observations USING(BirdID)  WHERE UserID=3  GROUP BY BirdID  having Antal>4 ORDER BY Antal DESC; 
 + 
 +14.
 SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal  SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal 
 FROM Users INNER JOIN Observations USING(UserID)  FROM Users INNER JOIN Observations USING(UserID) 
Line 124: Line 132:
 ORDER BY Antal DESC; ORDER BY Antal DESC;
  
-6.+15.
 SELECT Name,COUNT(DISTINCT UserID) as Antal  SELECT Name,COUNT(DISTINCT UserID) as Antal 
 FROM Birds INNER JOIN Observations USING(BirdID)  FROM Birds INNER JOIN Observations USING(BirdID) 
Line 130: Line 138:
 GROUP BY BirdID ORDER BY Antal DESC; GROUP BY BirdID ORDER BY Antal DESC;
  
-7.+16.
 SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal  SELECT CONCAT(FirstName,' ',LastName) as Name,COUNT(DISTINCT BirdID) as Antal 
 FROM Users INNER JOIN Observations USING(UserID)  FROM Users INNER JOIN Observations USING(UserID)