A Gentle Introduction to

SQL


Pick an engine:

Comments and questions from readers...

Bob Brooks writes...

I am learning Sql using your tutorial and I thank you for it. It is extremely easy to use. I believe your answer to 2b is wrong. You only count countries with a population of 10 million. If a region has no countries of 10 million, that region is not listed. It should be listed with a count of zero. I'm having trouble coming up with that answer.Bob BrooksSan Diego, Ca

Andrew replies... Thanks Bob,You are absolutely right about the country count. If a region has no countries that fit the bill that region will not show up at all. I can't think of an easy way to fix this.googleAndrew répond... Merci Bob, vous avez absolument raison au sujet du compte de pays. Si une région n'a aucun pays qui adapté la facture que la région ne révélera pas du tout. Je ne puis pas penser à une manière facile de fixer ceci.

A hard way to fix this is to use the functions googleUne manière dure de fixer ceci est d'employer les fonctions floorgoogleplancher and signgooglesigne . We divide the population by 10 million and get the integer component using google. Nous divisons la population par 10 millions et obtenons employer composant de nombre entier floorgoogleplancher , we then take the google, nous prenons alors signgooglesigne which delivers 1, 0 or -1 if its input is positive, zero or negative.googlece qui livre 1, 0 ou -1 si son entrée est positive, zéro ou négatif.

SQL Query
select region, name, population/10000000,
floor(population/10000000), sign(floor(population/10000000))
  from cia;
region name population/10000000 floor(population/10000000) sign(floor(population/10000000))
Asia Afghanistan 2.58 2 1
Europe Albania 0.35 0 0
Africa Algeria 3.12 3 1
Number of records: 3googleNombre de disques: 3 (Results truncated)

This final value may now be summed to get a count by region.googleCette valeur finale peut maintenant être additionnée pour obtenir un compte par région.

SQL Query
select region, sum(sign(floor(population/10000000)))
  from cia
  group by region;
region sum(sign(floor(population/10000000)))
Africa 22
Antarctic Region 0
Arctic Region 0
Asia 11
...

Note that the functions floor and sign are common but not universal. In MS Access we can achieve something similar using the function CInt and CBool.googleNotez que le plancher et le signe de fonctions sont communs mais non universels. Dans la MME. accès nous pouvons réaliser quelque chose de semblable en utilisant la fonction CInt et CBool.

It is probably possible to achieve the same answer using outer joins - any suggestions would be gratefully received.googleIl est probablement possible de réaliser même employer de réponse externe se joint - toutes les suggestions seraient avec reconnaissance reçues.

Yours AndrewgoogleVôtre Andrew