A sql lab filled with pokemon data

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # What is each pokemon's primary type?
  2. SELECT pokemon.pokemons.name, pokemon.types.name
  3. FROM pokemon.pokemons
  4. INNER JOIN pokemon.types
  5. WHERE types.id = primary_type;
  6. # What is Rufflet's secondary type?
  7. SELECT pokemon.types.name
  8. FROM pokemon.pokemons
  9. JOIN pokemon.types ON pokemon.pokemons.secondary_type = pokemon.types.id
  10. WHERE pokemon.pokemons.name = "Rufflet";
  11. # What are the names of the pokemon that belong to the trainer with trainerID 303?
  12. SELECT pokemon.pokemons.name
  13. FROM pokemon.pokemons
  14. JOIN pokemon.pokemon_trainer ON pokemon.pokemons.id = pokemon.pokemon_trainer.pokemon_id
  15. WHERE pokemon.pokemon_trainer.trainerID = 303;
  16. # How many pokemon have a secondary type Poison
  17. SELECT COUNT(pokemon.pokemons.name)
  18. FROM pokemon.pokemons
  19. JOIN pokemon.types ON pokemon.pokemons.secondary_type = pokemon.types.id
  20. WHERE pokemon.types.name = "Poison";
  21. # What are all the primary types and how many pokemon have that type?
  22. SELECT pokemon.types.name, COUNT(pokemon.pokemons.id)
  23. FROM pokemon.pokemons
  24. JOIN pokemon.types ON pokemon.pokemons.primary_type = pokemon.types.id
  25. GROUP BY pokemon.types.name;
  26. # How many pokemon at level 100 does each trainer with at least one level 100 pokemone have? (Hint: your query should not display a trainer
  27. SELECT COUNT(pokemon.pokemon_trainer.pokemon_id)
  28. FROM pokemon.pokemon_trainer
  29. WHERE pokemon.pokemon_trainer.pokelevel = 100
  30. GROUP BY pokemon.pokemon_trainer.trainerID;
  31. # How many pokemon only belong to one trainer and no other?
  32. SELECT COUNT(*)
  33. FROM (SELECT COUNT(pokemon.pokemon_trainer.pokemon_id)
  34. FROM pokemon.pokemon_trainer
  35. GROUP BY pokemon.pokemon_trainer.trainerID
  36. HAVING COUNT(*) = 1) a;