--
-- PostgreSQL port of the MySQL "World" database.
--
-- The sample data used in the world database is Copyright Statistics 
-- Finland, http://www.stat.fi/worldinfigures.
--

-- Modified to use it with GPDB

set extra_float_digits=0;

--start_ignore
create schema qp_with_clause;
set search_path = qp_with_clause;

DROP TABLE IF EXISTS city cascade;

DROP TABLE IF EXISTS country cascade;

DROP TABLE IF EXISTS countrylanguage cascade;

--end_ignore

SET optimizer_trace_fallback=on;

BEGIN;

--SET client_encoding = 'LATIN1';


CREATE TABLE city (
    id integer NOT NULL,
    name text NOT NULL,
    countrycode character(3) NOT NULL,
    district text NOT NULL,
    population integer NOT NULL
) distributed by(id);



CREATE TABLE country (
    code character(3) NOT NULL,
    name text NOT NULL,
    continent text NOT NULL,
    region text NOT NULL,
    surfacearea numeric(10,2) NOT NULL,
    indepyear smallint,
    population integer NOT NULL,
    lifeexpectancy real,
    gnp numeric(10,2),
    gnpold numeric(10,2),
    localname text NOT NULL,
    governmentform text NOT NULL,
    headofstate text,
    capital integer,
    code2 character(2) NOT NULL
) distributed by (code);



CREATE TABLE countrylanguage (
    countrycode character(3) NOT NULL,
    "language" text NOT NULL,
    isofficial boolean NOT NULL,
    percentage real NOT NULL
)distributed by (countrycode,language);

COPY city (id, name, countrycode, district, population) FROM stdin;
1	Kabul	AFG	Kabol	1780000
2	Qandahar	AFG	Qandahar	237500
3	Herat	AFG	Herat	186800
4	Mazar-e-Sharif	AFG	Balkh	127800
5	Amsterdam	NLD	Noord-Holland	731200
6	Rotterdam	NLD	Zuid-Holland	593321
7	Haag	NLD	Zuid-Holland	440900
8	Utrecht	NLD	Utrecht	234323
9	Eindhoven	NLD	Noord-Brabant	201843
10	Tilburg	NLD	Noord-Brabant	193238
11	Groningen	NLD	Groningen	172701
12	Breda	NLD	Noord-Brabant	160398
13	Apeldoorn	NLD	Gelderland	153491
14	Nijmegen	NLD	Gelderland	152463
15	Enschede	NLD	Overijssel	149544
16	Haarlem	NLD	Noord-Holland	148772
17	Almere	NLD	Flevoland	142465
18	Arnhem	NLD	Gelderland	138020
19	Zaanstad	NLD	Noord-Holland	135621
20	s-Hertogenbosch	NLD	Noord-Brabant	129170
21	Amersfoort	NLD	Utrecht	126270
22	Maastricht	NLD	Limburg	122087
23	Dordrecht	NLD	Zuid-Holland	119811
24	Leiden	NLD	Zuid-Holland	117196
25	Haarlemmermeer	NLD	Noord-Holland	110722
26	Zoetermeer	NLD	Zuid-Holland	110214
27	Emmen	NLD	Drenthe	105853
28	Zwolle	NLD	Overijssel	105819
29	Ede	NLD	Gelderland	101574
30	Delft	NLD	Zuid-Holland	95268
31	Heerlen	NLD	Limburg	95052
32	Alkmaar	NLD	Noord-Holland	92713
33	Willemstad	ANT	Curacao	2345
34	Tirana	ALB	Tirana	270000
35	Alger	DZA	Alger	2168000
36	Oran	DZA	Oran	609823
37	Constantine	DZA	Constantine	443727
38	Annaba	DZA	Annaba	222518
39	Batna	DZA	Batna	183377
40	Setif	DZA	Setif	179055
41	Sidi Bel Abbes	DZA	Sidi Bel Abbes	153106
42	Skikda	DZA	Skikda	128747
43	Biskra	DZA	Biskra	128281
44	Blida (el-Boulaida)	DZA	Blida	127284
45	Bejaia	DZA	Bejaia	117162
46	Mostaganem	DZA	Mostaganem	115212
47	Tebessa	DZA	Tebessa	112007
48	Tlemcen (Tilimsen)	DZA	Tlemcen	110242
49	Bechar	DZA	Bechar	107311
50	Tiaret	DZA	Tiaret	100118
51	Ech-Chleff (el-Asnam)	DZA	Chlef	96794
52	Ghardaia	DZA	Ghardaia	89415
53	Tafuna	ASM	Tutuila	5200
54	Fagatogo	ASM	Tutuila	2323
55	Andorra la Vella	AND	Andorra la Vella	21189
56	Luanda	AGO	Luanda	2022000
57	Huambo	AGO	Huambo	163100
58	Lobito	AGO	Benguela	130000
59	Benguela	AGO	Benguela	128300
60	Namibe	AGO	Namibe	118200
61	South Hill	AIA	A	961
62	The Valley	AIA	A	595
63	Saint Johns	ATG	St John	24000
64	Dubai	ARE	Dubai	669181
65	Abu Dhabi	ARE	Abu Dhabi	398695
66	Sharja	ARE	Sharja	320095
67	al-Ayn	ARE	Abu Dhabi	225970
68	Ajman	ARE	Ajman	114395
69	Buenos Aires	ARG	Distrito Federal	2982146
70	La Matanza	ARG	Buenos Aires	1266461
71	Cordoba	ARG	Cordoba	1157507
72	Rosario	ARG	Santa Fe	907718
73	Lomas de Zamora	ARG	Buenos Aires	622013
74	Quilmes	ARG	Buenos Aires	559249
75	Almirante Brown	ARG	Buenos Aires	538918
76	La Plata	ARG	Buenos Aires	521936
77	Mar del Plata	ARG	Buenos Aires	512880
78	San Miguel de Tucuman	ARG	Tucuman	470809
79	Lanus	ARG	Buenos Aires	469735
80	Merlo	ARG	Buenos Aires	463846
81	General San Martin	ARG	Buenos Aires	422542
82	Salta	ARG	Salta	367550
83	Moreno	ARG	Buenos Aires	356993
84	Santa Fe	ARG	Santa Fe	353063
85	Avellaneda	ARG	Buenos Aires	353046
86	Tres de Febrero	ARG	Buenos Aires	352311
87	Moron	ARG	Buenos Aires	349246
88	Florencio Varela	ARG	Buenos Aires	315432
89	San Isidro	ARG	Buenos Aires	306341
90	Tigre	ARG	Buenos Aires	296226
91	Malvinas Argentinas	ARG	Buenos Aires	290335
92	Vicente Lopez	ARG	Buenos Aires	288341
93	Berazategui	ARG	Buenos Aires	276916
94	Corrientes	ARG	Corrientes	258103
95	San Miguel	ARG	Buenos Aires	248700
96	Bahia Blanca	ARG	Buenos Aires	239810
97	Esteban Echeverria	ARG	Buenos Aires	235760
98	Resistencia	ARG	Chaco	229212
99	Jose C. Paz	ARG	Buenos Aires	221754
100	Parana	ARG	Entre Rios	207041
101	Godoy Cruz	ARG	Mendoza	206998
102	Posadas	ARG	Misiones	201273
103	Guaymallen	ARG	Mendoza	200595
104	Santiago del Estero	ARG	Santiago del Estero	189947
105	San Salvador de Jujuy	ARG	Jujuy	178748
106	Hurlingham	ARG	Buenos Aires	170028
107	Neuquen	ARG	Neuquen	167296
108	Ituzaingo	ARG	Buenos Aires	158197
109	San Fernando	ARG	Buenos Aires	153036
110	Formosa	ARG	Formosa	147636
111	Las Heras	ARG	Mendoza	145823
112	La Rioja	ARG	La Rioja	138117
113	San Fernando del Valle de Cata	ARG	Catamarca	134935
114	Rio Cuarto	ARG	Cordoba	134355
115	Comodoro Rivadavia	ARG	Chubut	124104
116	Mendoza	ARG	Mendoza	123027
117	San Nicolas de los Arroyos	ARG	Buenos Aires	119302
118	San Juan	ARG	San Juan	119152
119	Escobar	ARG	Buenos Aires	116675
120	Concordia	ARG	Entre Rios	116485
121	Pilar	ARG	Buenos Aires	113428
122	San Luis	ARG	San Luis	110136
123	Ezeiza	ARG	Buenos Aires	99578
124	San Rafael	ARG	Mendoza	94651
125	Tandil	ARG	Buenos Aires	91101
126	Yerevan	ARM	Yerevan	1248700
127	Gjumri	ARM	Girak	211700
128	Vanadzor	ARM	Lori	172700
129	Oranjestad	ABW	A	29034
130	Sydney	AUS	New South Wales	3276207
131	Melbourne	AUS	Victoria	2865329
132	Brisbane	AUS	Queensland	1291117
133	Perth	AUS	West Australia	1096829
134	Adelaide	AUS	South Australia	978100
135	Canberra	AUS	Capital Region	322723
136	Gold Coast	AUS	Queensland	311932
137	Newcastle	AUS	New South Wales	270324
138	Central Coast	AUS	New South Wales	227657
139	Wollongong	AUS	New South Wales	219761
140	Hobart	AUS	Tasmania	126118
141	Geelong	AUS	Victoria	125382
142	Townsville	AUS	Queensland	109914
143	Cairns	AUS	Queensland	92273
144	Baku	AZE	Baki	1787800
145	Ganca	AZE	Ganca	299300
146	Sumqayit	AZE	Sumqayit	283000
147	Mingacevir	AZE	Mingacevir	93900
148	Nassau	BHS	New Providence	172000
149	al-Manama	BHR	al-Manama	148000
150	Dhaka	BGD	Dhaka	3612850
151	Chittagong	BGD	Chittagong	1392860
152	Khulna	BGD	Khulna	663340
153	Rajshahi	BGD	Rajshahi	294056
154	Narayanganj	BGD	Dhaka	202134
155	Rangpur	BGD	Rajshahi	191398
156	Mymensingh	BGD	Dhaka	188713
157	Barisal	BGD	Barisal	170232
158	Tungi	BGD	Dhaka	168702
159	Jessore	BGD	Khulna	139710
160	Comilla	BGD	Chittagong	135313
161	Nawabganj	BGD	Rajshahi	130577
162	Dinajpur	BGD	Rajshahi	127815
163	Bogra	BGD	Rajshahi	120170
164	Sylhet	BGD	Sylhet	117396
165	Brahmanbaria	BGD	Chittagong	109032
166	Tangail	BGD	Dhaka	106004
167	Jamalpur	BGD	Dhaka	103556
168	Pabna	BGD	Rajshahi	103277
169	Naogaon	BGD	Rajshahi	101266
170	Sirajganj	BGD	Rajshahi	99669
171	Narsinghdi	BGD	Dhaka	98342
172	Saidpur	BGD	Rajshahi	96777
173	Gazipur	BGD	Dhaka	96717
174	Bridgetown	BRB	St Michael	6070
175	Antwerpen	BEL	Antwerpen	446525
176	Gent	BEL	East Flanderi	224180
177	Charleroi	BEL	Hainaut	200827
178	Liege	BEL	Liege	185639
179	Bruxelles [Brussel]	BEL	Bryssel	133859
180	Brugge	BEL	West Flanderi	116246
181	Schaerbeek	BEL	Bryssel	105692
182	Namur	BEL	Namur	105419
183	Mons	BEL	Hainaut	90935
184	Belize City	BLZ	Belize City	55810
185	Belmopan	BLZ	Cayo	7105
186	Cotonou	BEN	Atlantique	536827
187	Porto-Novo	BEN	Oueme	194000
188	Djougou	BEN	Atacora	134099
189	Parakou	BEN	Borgou	103577
190	Saint George	BMU	Saint Georges	1800
191	Hamilton	BMU	Hamilton	1200
192	Thimphu	BTN	Thimphu	22000
193	Santa Cruz de la Sierra	BOL	Santa Cruz	935361
194	La Paz	BOL	La Paz	758141
195	El Alto	BOL	La Paz	534466
196	Cochabamba	BOL	Cochabamba	482800
197	Oruro	BOL	Oruro	223553
198	Sucre	BOL	Chuquisaca	178426
199	Potosi	BOL	Potosi	140642
200	Tarija	BOL	Tarija	125255
201	Sarajevo	BIH	Federaatio	360000
202	Banja Luka	BIH	Republika Srpska	143079
203	Zenica	BIH	Federaatio	96027
204	Gaborone	BWA	Gaborone	213017
205	Francistown	BWA	Francistown	101805
206	Sao Paulo	BRA	Sao Paulo	9968485
207	Rio de Janeiro	BRA	Rio de Janeiro	5598953
208	Salvador	BRA	Bahia	2302832
209	Belo Horizonte	BRA	Minas Gerais	2139125
210	Fortaleza	BRA	Ceara	2097757
211	Brasilia	BRA	Distrito Federal	1969868
212	Curitiba	BRA	Parana	1584232
213	Recife	BRA	Pernambuco	1378087
214	Porto Alegre	BRA	Rio Grande do Sul	1314032
215	Manaus	BRA	Amazonas	1255049
216	Belem	BRA	Para	1186926
217	Guarulhos	BRA	Sao Paulo	1095874
218	Goiania	BRA	Goias	1056330
219	Campinas	BRA	Sao Paulo	950043
220	Sao Goncalo	BRA	Rio de Janeiro	869254
221	Nova Iguacu	BRA	Rio de Janeiro	862225
222	Sao Luis	BRA	Maranhao	837588
223	Maceio	BRA	Alagoas	786288
224	Duque de Caxias	BRA	Rio de Janeiro	746758
225	Sao Bernardo do Campo	BRA	Sao Paulo	723132
226	Teresina	BRA	Piaui	691942
227	Natal	BRA	Rio Grande do Norte	688955
228	Osasco	BRA	Sao Paulo	659604
229	Campo Grande	BRA	Mato Grosso do Sul	649593
230	Santo Andre	BRA	Sao Paulo	630073
231	Joao Pessoa	BRA	Paraiba	584029
232	Jaboatao dos Guararapes	BRA	Pernambuco	558680
233	Contagem	BRA	Minas Gerais	520801
234	Sao Jose dos Campos	BRA	Sao Paulo	515553
235	Uberlandia	BRA	Minas Gerais	487222
236	Feira de Santana	BRA	Bahia	479992
237	Ribeirao Preto	BRA	Sao Paulo	473276
238	Sorocaba	BRA	Sao Paulo	466823
239	Niteroi	BRA	Rio de Janeiro	459884
240	Cuiaba	BRA	Mato Grosso	453813
241	Juiz de Fora	BRA	Minas Gerais	450288
242	Aracaju	BRA	Sergipe	445555
243	Sao Joao de Meriti	BRA	Rio de Janeiro	440052
244	Londrina	BRA	Parana	432257
245	Joinville	BRA	Santa Catarina	428011
246	Belford Roxo	BRA	Rio de Janeiro	425194
247	Santos	BRA	Sao Paulo	408748
248	Ananindeua	BRA	Para	400940
249	Campos dos Goytacazes	BRA	Rio de Janeiro	398418
250	Maua	BRA	Sao Paulo	375055
251	Carapicuiba	BRA	Sao Paulo	357552
252	Olinda	BRA	Pernambuco	354732
253	Campina Grande	BRA	Paraiba	352497
254	Sao Jose do Rio Preto	BRA	Sao Paulo	351944
255	Caxias do Sul	BRA	Rio Grande do Sul	349581
256	Moji das Cruzes	BRA	Sao Paulo	339194
257	Diadema	BRA	Sao Paulo	335078
258	Aparecida de Goiania	BRA	Goias	324662
259	Piracicaba	BRA	Sao Paulo	319104
260	Cariacica	BRA	Espirito Santo	319033
261	Vila Velha	BRA	Espirito Santo	318758
262	Pelotas	BRA	Rio Grande do Sul	315415
263	Bauru	BRA	Sao Paulo	313670
264	Porto Velho	BRA	Rondonia	309750
265	Serra	BRA	Espirito Santo	302666
266	Betim	BRA	Minas Gerais	302108
267	Jundiai	BRA	Sao Paulo	296127
268	Canoas	BRA	Rio Grande do Sul	294125
269	Franca	BRA	Sao Paulo	290139
270	Sao Vicente	BRA	Sao Paulo	286848
271	Maringa	BRA	Parana	286461
272	Montes Claros	BRA	Minas Gerais	286058
273	Anapolis	BRA	Goias	282197
274	Florianopolis	BRA	Santa Catarina	281928
275	Petropolis	BRA	Rio de Janeiro	279183
276	Itaquaquecetuba	BRA	Sao Paulo	270874
277	Vitoria	BRA	Espirito Santo	270626
278	Ponta Grossa	BRA	Parana	268013
279	Rio Branco	BRA	Acre	259537
280	Foz do Iguacu	BRA	Parana	259425
281	Macapa	BRA	Amapa	256033
282	Ilheus	BRA	Bahia	254970
283	Vitoria da Conquista	BRA	Bahia	253587
284	Uberaba	BRA	Minas Gerais	249225
285	Paulista	BRA	Pernambuco	248473
286	Limeira	BRA	Sao Paulo	245497
287	Blumenau	BRA	Santa Catarina	244379
288	Caruaru	BRA	Pernambuco	244247
289	Santarem	BRA	Para	241771
290	Volta Redonda	BRA	Rio de Janeiro	240315
291	Novo Hamburgo	BRA	Rio Grande do Sul	239940
292	Caucaia	BRA	Ceara	238738
293	Santa Maria	BRA	Rio Grande do Sul	238473
294	Cascavel	BRA	Parana	237510
295	Guaruja	BRA	Sao Paulo	237206
296	Ribeirao das Neves	BRA	Minas Gerais	232685
297	Governador Valadares	BRA	Minas Gerais	231724
298	Taubate	BRA	Sao Paulo	229130
299	Imperatriz	BRA	Maranhao	224564
300	Gravatai	BRA	Rio Grande do Sul	223011
301	Embu	BRA	Sao Paulo	222223
302	Mossoro	BRA	Rio Grande do Norte	214901
303	Varzea Grande	BRA	Mato Grosso	214435
304	Petrolina	BRA	Pernambuco	210540
305	Barueri	BRA	Sao Paulo	208426
306	Viamao	BRA	Rio Grande do Sul	207557
307	Ipatinga	BRA	Minas Gerais	206338
308	Juazeiro	BRA	Bahia	201073
309	Juazeiro do Norte	BRA	Ceara	199636
310	Taboao da Serra	BRA	Sao Paulo	197550
311	Sao Jose dos Pinhais	BRA	Parana	196884
312	Mage	BRA	Rio de Janeiro	196147
313	Suzano	BRA	Sao Paulo	195434
314	Sao Leopoldo	BRA	Rio Grande do Sul	189258
315	Marilia	BRA	Sao Paulo	188691
316	Sao Carlos	BRA	Sao Paulo	187122
317	Sumare	BRA	Sao Paulo	186205
318	Presidente Prudente	BRA	Sao Paulo	185340
319	Divinopolis	BRA	Minas Gerais	185047
320	Sete Lagoas	BRA	Minas Gerais	182984
321	Rio Grande	BRA	Rio Grande do Sul	182222
322	Itabuna	BRA	Bahia	182148
323	Jequie	BRA	Bahia	179128
324	Arapiraca	BRA	Alagoas	178988
325	Colombo	BRA	Parana	177764
326	Americana	BRA	Sao Paulo	177409
327	Alvorada	BRA	Rio Grande do Sul	175574
328	Araraquara	BRA	Sao Paulo	174381
329	Itaborai	BRA	Rio de Janeiro	173977
330	Santa Barbara dOeste	BRA	Sao Paulo	171657
331	Nova Friburgo	BRA	Rio de Janeiro	170697
332	Jacarei	BRA	Sao Paulo	170356
333	Aracatuba	BRA	Sao Paulo	169303
334	Barra Mansa	BRA	Rio de Janeiro	168953
335	Praia Grande	BRA	Sao Paulo	168434
336	Maraba	BRA	Para	167795
337	Criciuma	BRA	Santa Catarina	167661
338	Boa Vista	BRA	Roraima	167185
339	Passo Fundo	BRA	Rio Grande do Sul	166343
340	Dourados	BRA	Mato Grosso do Sul	164716
341	Santa Luzia	BRA	Minas Gerais	164704
342	Rio Claro	BRA	Sao Paulo	163551
343	Maracanau	BRA	Ceara	162022
344	Guarapuava	BRA	Parana	160510
345	Rondonopolis	BRA	Mato Grosso	155115
346	Sao Jose	BRA	Santa Catarina	155105
347	Cachoeiro de Itapemirim	BRA	Espirito Santo	155024
348	Nilopolis	BRA	Rio de Janeiro	153383
349	Itapevi	BRA	Sao Paulo	150664
350	Cabo de Santo Agostinho	BRA	Pernambuco	149964
351	Camacari	BRA	Bahia	149146
352	Sobral	BRA	Ceara	146005
353	Itajai	BRA	Santa Catarina	145197
354	Chapeco	BRA	Santa Catarina	144158
355	Cotia	BRA	Sao Paulo	140042
356	Lages	BRA	Santa Catarina	139570
357	Ferraz de Vasconcelos	BRA	Sao Paulo	139283
358	Indaiatuba	BRA	Sao Paulo	135968
359	Hortolandia	BRA	Sao Paulo	135755
360	Caxias	BRA	Maranhao	133980
361	Sao Caetano do Sul	BRA	Sao Paulo	133321
362	Itu	BRA	Sao Paulo	132736
363	Nossa Senhora do Socorro	BRA	Sergipe	131351
364	Parnaiba	BRA	Piaui	129756
365	Pocos de Caldas	BRA	Minas Gerais	129683
366	Teresopolis	BRA	Rio de Janeiro	128079
367	Barreiras	BRA	Bahia	127801
368	Castanhal	BRA	Para	127634
369	Alagoinhas	BRA	Bahia	126820
370	Itapecerica da Serra	BRA	Sao Paulo	126672
371	Uruguaiana	BRA	Rio Grande do Sul	126305
372	Paranagua	BRA	Parana	126076
373	Ibirite	BRA	Minas Gerais	125982
374	Timon	BRA	Maranhao	125812
375	Luziania	BRA	Goias	125597
376	Macae	BRA	Rio de Janeiro	125597
377	Teofilo Otoni	BRA	Minas Gerais	124489
378	Moji-Guacu	BRA	Sao Paulo	123782
379	Palmas	BRA	Tocantins	121919
380	Pindamonhangaba	BRA	Sao Paulo	121904
381	Francisco Morato	BRA	Sao Paulo	121197
382	Bage	BRA	Rio Grande do Sul	120793
383	Sapucaia do Sul	BRA	Rio Grande do Sul	120217
384	Cabo Frio	BRA	Rio de Janeiro	119503
385	Itapetininga	BRA	Sao Paulo	119391
386	Patos de Minas	BRA	Minas Gerais	119262
387	Camaragibe	BRA	Pernambuco	118968
388	Braganca Paulista	BRA	Sao Paulo	116929
389	Queimados	BRA	Rio de Janeiro	115020
390	Araguaina	BRA	Tocantins	114948
391	Garanhuns	BRA	Pernambuco	114603
392	Vitoria de Santo Antao	BRA	Pernambuco	113595
393	Santa Rita	BRA	Paraiba	113135
394	Barbacena	BRA	Minas Gerais	113079
395	Abaetetuba	BRA	Para	111258
396	Jau	BRA	Sao Paulo	109965
397	Lauro de Freitas	BRA	Bahia	109236
398	Franco da Rocha	BRA	Sao Paulo	108964
399	Teixeira de Freitas	BRA	Bahia	108441
400	Varginha	BRA	Minas Gerais	108314
401	Ribeirao Pires	BRA	Sao Paulo	108121
402	Sabara	BRA	Minas Gerais	107781
403	Catanduva	BRA	Sao Paulo	107761
404	Rio Verde	BRA	Goias	107755
405	Botucatu	BRA	Sao Paulo	107663
406	Colatina	BRA	Espirito Santo	107354
407	Santa Cruz do Sul	BRA	Rio Grande do Sul	106734
408	Linhares	BRA	Espirito Santo	106278
409	Apucarana	BRA	Parana	105114
410	Barretos	BRA	Sao Paulo	104156
411	Guaratingueta	BRA	Sao Paulo	103433
412	Cachoeirinha	BRA	Rio Grande do Sul	103240
413	Codo	BRA	Maranhao	103153
414	Jaragua do Sul	BRA	Santa Catarina	102580
415	Cubatao	BRA	Sao Paulo	102372
416	Itabira	BRA	Minas Gerais	102217
417	Itaituba	BRA	Para	101320
418	Araras	BRA	Sao Paulo	101046
419	Resende	BRA	Rio de Janeiro	100627
420	Atibaia	BRA	Sao Paulo	100356
421	Pouso Alegre	BRA	Minas Gerais	100028
422	Toledo	BRA	Parana	99387
423	Crato	BRA	Ceara	98965
424	Passos	BRA	Minas Gerais	98570
425	Araguari	BRA	Minas Gerais	98399
426	Sao Jose de Ribamar	BRA	Maranhao	98318
427	Pinhais	BRA	Parana	98198
428	Sertaozinho	BRA	Sao Paulo	98140
429	Conselheiro Lafaiete	BRA	Minas Gerais	97507
430	Paulo Afonso	BRA	Bahia	97291
431	Angra dos Reis	BRA	Rio de Janeiro	96864
432	Eunapolis	BRA	Bahia	96610
433	Salto	BRA	Sao Paulo	96348
434	Ourinhos	BRA	Sao Paulo	96291
435	Parnamirim	BRA	Rio Grande do Norte	96210
436	Jacobina	BRA	Bahia	96131
437	Coronel Fabriciano	BRA	Minas Gerais	95933
438	Birigui	BRA	Sao Paulo	94685
439	Tatui	BRA	Sao Paulo	93897
440	Ji-Parana	BRA	Rondonia	93346
441	Bacabal	BRA	Maranhao	93121
442	Cameta	BRA	Para	92779
443	Guaiba	BRA	Rio Grande do Sul	92224
444	Sao Lourenco da Mata	BRA	Pernambuco	91999
445	Santana do Livramento	BRA	Rio Grande do Sul	91779
446	Votorantim	BRA	Sao Paulo	91777
447	Campo Largo	BRA	Parana	91203
448	Patos	BRA	Paraiba	90519
449	Ituiutaba	BRA	Minas Gerais	90507
450	Corumba	BRA	Mato Grosso do Sul	90111
451	Palhoca	BRA	Santa Catarina	89465
452	Barra do Pirai	BRA	Rio de Janeiro	89388
453	Bento Goncalves	BRA	Rio Grande do Sul	89254
454	Poa	BRA	Sao Paulo	89236
455	Aguas Lindas de Goias	BRA	Goias	89200
456	London	GBR	England	7285000
457	Birmingham	GBR	England	1013000
458	Glasgow	GBR	Scotland	619680
459	Liverpool	GBR	England	461000
460	Edinburgh	GBR	Scotland	450180
461	Sheffield	GBR	England	431607
462	Manchester	GBR	England	430000
463	Leeds	GBR	England	424194
464	Bristol	GBR	England	402000
465	Cardiff	GBR	Wales	321000
466	Coventry	GBR	England	304000
467	Leicester	GBR	England	294000
468	Bradford	GBR	England	289376
469	Belfast	GBR	North Ireland	287500
470	Nottingham	GBR	England	287000
471	Kingston upon Hull	GBR	England	262000
472	Plymouth	GBR	England	253000
473	Stoke-on-Trent	GBR	England	252000
474	Wolverhampton	GBR	England	242000
475	Derby	GBR	England	236000
476	Swansea	GBR	Wales	230000
477	Southampton	GBR	England	216000
478	Aberdeen	GBR	Scotland	213070
479	Northampton	GBR	England	196000
480	Dudley	GBR	England	192171
481	Portsmouth	GBR	England	190000
482	Newcastle upon Tyne	GBR	England	189150
483	Sunderland	GBR	England	183310
484	Luton	GBR	England	183000
485	Swindon	GBR	England	180000
486	Southend-on-Sea	GBR	England	176000
487	Walsall	GBR	England	174739
488	Bournemouth	GBR	England	162000
489	Peterborough	GBR	England	156000
490	Brighton	GBR	England	156124
491	Blackpool	GBR	England	151000
492	Dundee	GBR	Scotland	146690
493	West Bromwich	GBR	England	146386
494	Reading	GBR	England	148000
495	Oldbury/Smethwick (Warley)	GBR	England	145542
496	Middlesbrough	GBR	England	145000
497	Huddersfield	GBR	England	143726
498	Oxford	GBR	England	144000
499	Poole	GBR	England	141000
500	Bolton	GBR	England	139020
501	Blackburn	GBR	England	140000
502	Newport	GBR	Wales	139000
503	Preston	GBR	England	135000
504	Stockport	GBR	England	132813
505	Norwich	GBR	England	124000
506	Rotherham	GBR	England	121380
507	Cambridge	GBR	England	121000
508	Watford	GBR	England	113080
509	Ipswich	GBR	England	114000
510	Slough	GBR	England	112000
511	Exeter	GBR	England	111000
512	Cheltenham	GBR	England	106000
513	Gloucester	GBR	England	107000
514	Saint Helens	GBR	England	106293
515	Sutton Coldfield	GBR	England	106001
516	York	GBR	England	104425
517	Oldham	GBR	England	103931
518	Basildon	GBR	England	100924
519	Worthing	GBR	England	100000
520	Chelmsford	GBR	England	97451
521	Colchester	GBR	England	96063
522	Crawley	GBR	England	97000
523	Gillingham	GBR	England	92000
524	Solihull	GBR	England	94531
525	Rochdale	GBR	England	94313
526	Birkenhead	GBR	England	93087
527	Worcester	GBR	England	95000
528	Hartlepool	GBR	England	92000
529	Halifax	GBR	England	91069
530	Woking/Byfleet	GBR	England	92000
531	Southport	GBR	England	90959
532	Maidstone	GBR	England	90878
533	Eastbourne	GBR	England	90000
534	Grimsby	GBR	England	89000
535	Saint Helier	GBR	Jersey	27523
536	Douglas	GBR	A	23487
537	Road Town	VGB	Tortola	8000
538	Bandar Seri Begawan	BRN	Brunei and Muara	21484
539	Sofija	BGR	Grad Sofija	1122302
540	Plovdiv	BGR	Plovdiv	342584
541	Varna	BGR	Varna	299801
542	Burgas	BGR	Burgas	195255
543	Ruse	BGR	Ruse	166467
544	Stara Zagora	BGR	Haskovo	147939
545	Pleven	BGR	Lovec	121952
546	Sliven	BGR	Burgas	105530
547	Dobric	BGR	Varna	100399
548	Gumen	BGR	Varna	94686
549	Ouagadougou	BFA	Kadiogo	824000
550	Bobo-Dioulasso	BFA	Houet	300000
551	Koudougou	BFA	Boulkiemde	105000
552	Bujumbura	BDI	Bujumbura	300000
553	George Town	CYM	Grand Cayman	19600
554	Santiago de Chile	CHL	Santiago	4703954
555	Puente Alto	CHL	Santiago	386236
556	Viaa del Mar	CHL	Valparaiso	312493
557	Valparaiso	CHL	Valparaiso	293800
558	Talcahuano	CHL	Biobio	277752
559	Antofagasta	CHL	Antofagasta	251429
560	San Bernardo	CHL	Santiago	241910
561	Temuco	CHL	La Araucania	233041
562	Concepcion	CHL	Biobio	217664
563	Rancagua	CHL	OHiggins	212977
564	Arica	CHL	Tarapaca	189036
565	Talca	CHL	Maule	187557
566	Chillan	CHL	Biobio	178182
567	Iquique	CHL	Tarapaca	177892
568	Los Angeles	CHL	Biobio	158215
569	Puerto Montt	CHL	Los Lagos	152194
570	Coquimbo	CHL	Coquimbo	143353
571	Osorno	CHL	Los Lagos	141468
572	La Serena	CHL	Coquimbo	137409
573	Calama	CHL	Antofagasta	137265
574	Valdivia	CHL	Los Lagos	133106
575	Punta Arenas	CHL	Magallanes	125631
576	Copiapo	CHL	Atacama	120128
577	Quilpue	CHL	Valparaiso	118857
578	Curico	CHL	Maule	115766
579	Ovalle	CHL	Coquimbo	94854
580	Coronel	CHL	Biobio	93061
581	San Pedro de la Paz	CHL	Biobio	91684
582	Melipilla	CHL	Santiago	91056
583	Avarua	COK	Rarotonga	11900
584	San Jose	CRI	San Jose	339131
585	Djibouti	DJI	Djibouti	383000
586	Roseau	DMA	St George	16243
587	Santo Domingo de Guzman	DOM	Distrito Nacional	1609966
588	Santiago de los Caballeros	DOM	Santiago	365463
589	La Romana	DOM	La Romana	140204
590	San Pedro de Macoris	DOM	San Pedro de Macoris	124735
591	San Francisco de Macoris	DOM	Duarte	108485
592	San Felipe de Puerto Plata	DOM	Puerto Plata	89423
593	Guayaquil	ECU	Guayas	2070040
594	Quito	ECU	Pichincha	1573458
595	Cuenca	ECU	Azuay	270353
596	Machala	ECU	El Oro	210368
597	Santo Domingo de los Colorados	ECU	Pichincha	202111
598	Portoviejo	ECU	Manabi	176413
599	Ambato	ECU	Tungurahua	169612
600	Manta	ECU	Manabi	164739
601	Duran [Eloy Alfaro]	ECU	Guayas	152514
602	Ibarra	ECU	Imbabura	130643
603	Quevedo	ECU	Los Rios	129631
604	Milagro	ECU	Guayas	124177
605	Loja	ECU	Loja	123875
606	Riobamba	ECU	Chimborazo	123163
607	Esmeraldas	ECU	Esmeraldas	123045
608	Cairo	EGY	Kairo	6789479
609	Alexandria	EGY	Aleksandria	3328196
610	Giza	EGY	Giza	2221868
611	Shubra al-Khayma	EGY	al-Qalyubiya	870716
612	Port Said	EGY	Port Said	469533
613	Suez	EGY	Suez	417610
614	al-Mahallat al-Kubra	EGY	al-Gharbiya	395402
615	Tanta	EGY	al-Gharbiya	371010
616	al-Mansura	EGY	al-Daqahliya	369621
617	Luxor	EGY	Luxor	360503
618	Asyut	EGY	Asyut	343498
619	Bahtim	EGY	al-Qalyubiya	275807
620	Zagazig	EGY	al-Sharqiya	267351
621	al-Faiyum	EGY	al-Faiyum	260964
622	Ismailia	EGY	Ismailia	254477
623	Kafr al-Dawwar	EGY	al-Buhayra	231978
624	Assuan	EGY	Assuan	219017
625	Damanhur	EGY	al-Buhayra	212203
626	al-Minya	EGY	al-Minya	201360
627	Bani Suwayf	EGY	Bani Suwayf	172032
628	Qina	EGY	Qina	171275
629	Sawhaj	EGY	Sawhaj	170125
630	Shibin al-Kawm	EGY	al-Minufiya	159909
631	Bulaq al-Dakrur	EGY	Giza	148787
632	Banha	EGY	al-Qalyubiya	145792
633	Warraq al-Arab	EGY	Giza	127108
634	Kafr al-Shaykh	EGY	Kafr al-Shaykh	124819
635	Mallawi	EGY	al-Minya	119283
636	Bilbays	EGY	al-Sharqiya	113608
637	Mit Ghamr	EGY	al-Daqahliya	101801
638	al-Arish	EGY	Shamal Sina	100447
639	Talkha	EGY	al-Daqahliya	97700
640	Qalyub	EGY	al-Qalyubiya	97200
641	Jirja	EGY	Sawhaj	95400
642	Idfu	EGY	Qina	94200
643	al-Hawamidiya	EGY	Giza	91700
644	Disuq	EGY	Kafr al-Shaykh	91300
645	San Salvador	SLV	San Salvador	415346
646	Santa Ana	SLV	Santa Ana	139389
647	Mejicanos	SLV	San Salvador	138800
648	Soyapango	SLV	San Salvador	129800
649	San Miguel	SLV	San Miguel	127696
650	Nueva San Salvador	SLV	La Libertad	98400
651	Apopa	SLV	San Salvador	88800
652	Asmara	ERI	Maekel	431000
653	Madrid	ESP	Madrid	2879052
654	Barcelona	ESP	Katalonia	1503451
655	Valencia	ESP	Valencia	739412
656	Sevilla	ESP	Andalusia	701927
657	Zaragoza	ESP	Aragonia	603367
658	Malaga	ESP	Andalusia	530553
659	Bilbao	ESP	Baskimaa	357589
660	Las Palmas de Gran Canaria	ESP	Canary Islands	354757
661	Murcia	ESP	Murcia	353504
662	Palma de Mallorca	ESP	Balears	326993
663	Valladolid	ESP	Castilla and Leon	319998
664	Cordoba	ESP	Andalusia	311708
665	Vigo	ESP	Galicia	283670
666	Alicante [Alacant]	ESP	Valencia	272432
667	Gijon	ESP	Asturia	267980
668	LHospitalet de Llobregat	ESP	Katalonia	247986
669	Granada	ESP	Andalusia	244767
670	A Coruaa (La Coruaa)	ESP	Galicia	243402
671	Vitoria-Gasteiz	ESP	Baskimaa	217154
672	Santa Cruz de Tenerife	ESP	Canary Islands	213050
673	Badalona	ESP	Katalonia	209635
674	Oviedo	ESP	Asturia	200453
675	Mostoles	ESP	Madrid	195351
676	Elche [Elx]	ESP	Valencia	193174
677	Sabadell	ESP	Katalonia	184859
678	Santander	ESP	Cantabria	184165
679	Jerez de la Frontera	ESP	Andalusia	182660
680	Pamplona [Iruaa]	ESP	Navarra	180483
681	Donostia-San Sebastian	ESP	Baskimaa	179208
682	Cartagena	ESP	Murcia	177709
683	Leganes	ESP	Madrid	173163
684	Fuenlabrada	ESP	Madrid	171173
685	Almeria	ESP	Andalusia	169027
686	Terrassa	ESP	Katalonia	168695
687	Alcala de Henares	ESP	Madrid	164463
688	Burgos	ESP	Castilla and Leon	162802
689	Salamanca	ESP	Castilla and Leon	158720
690	Albacete	ESP	Kastilia-La Mancha	147527
691	Getafe	ESP	Madrid	145371
692	Cadiz	ESP	Andalusia	142449
693	Alcorcon	ESP	Madrid	142048
694	Huelva	ESP	Andalusia	140583
695	Leon	ESP	Castilla and Leon	139809
696	Castellon de la Plana [Castell	ESP	Valencia	139712
697	Badajoz	ESP	Extremadura	136613
698	[San Cristobal de] la Laguna	ESP	Canary Islands	127945
699	Logroao	ESP	La Rioja	127093
700	Santa Coloma de Gramenet	ESP	Katalonia	120802
701	Tarragona	ESP	Katalonia	113016
702	Lleida (Lerida)	ESP	Katalonia	112207
703	Jaen	ESP	Andalusia	109247
704	Ourense (Orense)	ESP	Galicia	109120
705	Mataro	ESP	Katalonia	104095
706	Algeciras	ESP	Andalusia	103106
707	Marbella	ESP	Andalusia	101144
708	Barakaldo	ESP	Baskimaa	98212
709	Dos Hermanas	ESP	Andalusia	94591
710	Santiago de Compostela	ESP	Galicia	93745
711	Torrejon de Ardoz	ESP	Madrid	92262
712	Cape Town	ZAF	Western Cape	2352121
713	Soweto	ZAF	Gauteng	904165
714	Johannesburg	ZAF	Gauteng	756653
715	Port Elizabeth	ZAF	Eastern Cape	752319
716	Pretoria	ZAF	Gauteng	658630
717	Inanda	ZAF	KwaZulu-Natal	634065
718	Durban	ZAF	KwaZulu-Natal	566120
719	Vanderbijlpark	ZAF	Gauteng	468931
720	Kempton Park	ZAF	Gauteng	442633
721	Alberton	ZAF	Gauteng	410102
722	Pinetown	ZAF	KwaZulu-Natal	378810
723	Pietermaritzburg	ZAF	KwaZulu-Natal	370190
724	Benoni	ZAF	Gauteng	365467
725	Randburg	ZAF	Gauteng	341288
726	Umlazi	ZAF	KwaZulu-Natal	339233
727	Bloemfontein	ZAF	Free State	334341
728	Vereeniging	ZAF	Gauteng	328535
729	Wonderboom	ZAF	Gauteng	283289
730	Roodepoort	ZAF	Gauteng	279340
731	Boksburg	ZAF	Gauteng	262648
732	Klerksdorp	ZAF	North West	261911
733	Soshanguve	ZAF	Gauteng	242727
734	Newcastle	ZAF	KwaZulu-Natal	222993
735	East London	ZAF	Eastern Cape	221047
736	Welkom	ZAF	Free State	203296
737	Kimberley	ZAF	Northern Cape	197254
738	Uitenhage	ZAF	Eastern Cape	192120
739	Chatsworth	ZAF	KwaZulu-Natal	189885
740	Mdantsane	ZAF	Eastern Cape	182639
741	Krugersdorp	ZAF	Gauteng	181503
742	Botshabelo	ZAF	Free State	177971
743	Brakpan	ZAF	Gauteng	171363
744	Witbank	ZAF	Mpumalanga	167183
745	Oberholzer	ZAF	Gauteng	164367
746	Germiston	ZAF	Gauteng	164252
747	Springs	ZAF	Gauteng	162072
748	Westonaria	ZAF	Gauteng	159632
749	Randfontein	ZAF	Gauteng	120838
750	Paarl	ZAF	Western Cape	105768
751	Potchefstroom	ZAF	North West	101817
752	Rustenburg	ZAF	North West	97008
753	Nigel	ZAF	Gauteng	96734
754	George	ZAF	Western Cape	93818
755	Ladysmith	ZAF	KwaZulu-Natal	89292
756	Addis Abeba	ETH	Addis Abeba	2495000
757	Dire Dawa	ETH	Dire Dawa	164851
758	Nazret	ETH	Oromia	127842
759	Gonder	ETH	Amhara	112249
760	Dese	ETH	Amhara	97314
761	Mekele	ETH	Tigray	96938
762	Bahir Dar	ETH	Amhara	96140
763	Stanley	FLK	East Falkland	1636
764	Suva	FJI	Central	77366
765	Quezon	PHL	National Capital Reg	2173831
766	Manila	PHL	National Capital Reg	1581082
767	Kalookan	PHL	National Capital Reg	1177604
768	Davao	PHL	Southern Mindanao	1147116
769	Cebu	PHL	Central Visayas	718821
770	Zamboanga	PHL	Western Mindanao	601794
771	Pasig	PHL	National Capital Reg	505058
772	Valenzuela	PHL	National Capital Reg	485433
773	Las Piaas	PHL	National Capital Reg	472780
774	Antipolo	PHL	Southern Tagalog	470866
775	Taguig	PHL	National Capital Reg	467375
776	Cagayan de Oro	PHL	Northern Mindanao	461877
777	Paraaaque	PHL	National Capital Reg	449811
778	Makati	PHL	National Capital Reg	444867
779	Bacolod	PHL	Western Visayas	429076
780	General Santos	PHL	Southern Mindanao	411822
781	Marikina	PHL	National Capital Reg	391170
782	Dasmariaas	PHL	Southern Tagalog	379520
783	Muntinlupa	PHL	National Capital Reg	379310
784	Iloilo	PHL	Western Visayas	365820
785	Pasay	PHL	National Capital Reg	354908
786	Malabon	PHL	National Capital Reg	338855
787	San Jose del Monte	PHL	Central Luzon	315807
788	Bacoor	PHL	Southern Tagalog	305699
789	Iligan	PHL	Central Mindanao	285061
790	Calamba	PHL	Southern Tagalog	281146
791	Mandaluyong	PHL	National Capital Reg	278474
792	Butuan	PHL	Caraga	267279
793	Angeles	PHL	Central Luzon	263971
794	Tarlac	PHL	Central Luzon	262481
795	Mandaue	PHL	Central Visayas	259728
796	Baguio	PHL	CAR	252386
797	Batangas	PHL	Southern Tagalog	247588
798	Cainta	PHL	Southern Tagalog	242511
799	San Pedro	PHL	Southern Tagalog	231403
800	Navotas	PHL	National Capital Reg	230403
801	Cabanatuan	PHL	Central Luzon	222859
802	San Fernando	PHL	Central Luzon	221857
803	Lipa	PHL	Southern Tagalog	218447
804	Lapu-Lapu	PHL	Central Visayas	217019
805	San Pablo	PHL	Southern Tagalog	207927
806	Biaan	PHL	Southern Tagalog	201186
807	Taytay	PHL	Southern Tagalog	198183
808	Lucena	PHL	Southern Tagalog	196075
809	Imus	PHL	Southern Tagalog	195482
810	Olongapo	PHL	Central Luzon	194260
811	Binangonan	PHL	Southern Tagalog	187691
812	Santa Rosa	PHL	Southern Tagalog	185633
813	Tagum	PHL	Southern Mindanao	179531
814	Tacloban	PHL	Eastern Visayas	178639
815	Malolos	PHL	Central Luzon	175291
816	Mabalacat	PHL	Central Luzon	171045
817	Cotabato	PHL	Central Mindanao	163849
818	Meycauayan	PHL	Central Luzon	163037
819	Puerto Princesa	PHL	Southern Tagalog	161912
820	Legazpi	PHL	Bicol	157010
821	Silang	PHL	Southern Tagalog	156137
822	Ormoc	PHL	Eastern Visayas	154297
823	San Carlos	PHL	Ilocos	154264
824	Kabankalan	PHL	Western Visayas	149769
825	Talisay	PHL	Central Visayas	148110
826	Valencia	PHL	Northern Mindanao	147924
827	Calbayog	PHL	Eastern Visayas	147187
828	Santa Maria	PHL	Central Luzon	144282
829	Pagadian	PHL	Western Mindanao	142515
830	Cadiz	PHL	Western Visayas	141954
831	Bago	PHL	Western Visayas	141721
832	Toledo	PHL	Central Visayas	141174
833	Naga	PHL	Bicol	137810
834	San Mateo	PHL	Southern Tagalog	135603
835	Panabo	PHL	Southern Mindanao	133950
836	Koronadal	PHL	Southern Mindanao	133786
837	Marawi	PHL	Central Mindanao	131090
838	Dagupan	PHL	Ilocos	130328
839	Sagay	PHL	Western Visayas	129765
840	Roxas	PHL	Western Visayas	126352
841	Lubao	PHL	Central Luzon	125699
842	Digos	PHL	Southern Mindanao	125171
843	San Miguel	PHL	Central Luzon	123824
844	Malaybalay	PHL	Northern Mindanao	123672
845	Tuguegarao	PHL	Cagayan Valley	120645
846	Ilagan	PHL	Cagayan Valley	119990
847	Baliuag	PHL	Central Luzon	119675
848	Surigao	PHL	Caraga	118534
849	San Carlos	PHL	Western Visayas	118259
850	San Juan del Monte	PHL	National Capital Reg	117680
851	Tanauan	PHL	Southern Tagalog	117539
852	Concepcion	PHL	Central Luzon	115171
853	Rodriguez (Montalban)	PHL	Southern Tagalog	115167
854	Sariaya	PHL	Southern Tagalog	114568
855	Malasiqui	PHL	Ilocos	113190
856	General Mariano Alvarez	PHL	Southern Tagalog	112446
857	Urdaneta	PHL	Ilocos	111582
858	Hagonoy	PHL	Central Luzon	111425
859	San Jose	PHL	Southern Tagalog	111009
860	Polomolok	PHL	Southern Mindanao	110709
861	Santiago	PHL	Cagayan Valley	110531
862	Tanza	PHL	Southern Tagalog	110517
863	Ozamis	PHL	Northern Mindanao	110420
864	Mexico	PHL	Central Luzon	109481
865	San Jose	PHL	Central Luzon	108254
866	Silay	PHL	Western Visayas	107722
867	General Trias	PHL	Southern Tagalog	107691
868	Tabaco	PHL	Bicol	107166
869	Cabuyao	PHL	Southern Tagalog	106630
870	Calapan	PHL	Southern Tagalog	105910
871	Mati	PHL	Southern Mindanao	105908
872	Midsayap	PHL	Central Mindanao	105760
873	Cauayan	PHL	Cagayan Valley	103952
874	Gingoog	PHL	Northern Mindanao	102379
875	Dumaguete	PHL	Central Visayas	102265
876	San Fernando	PHL	Ilocos	102082
877	Arayat	PHL	Central Luzon	101792
878	Bayawan (Tulong)	PHL	Central Visayas	101391
879	Kidapawan	PHL	Central Mindanao	101205
880	Daraga (Locsin)	PHL	Bicol	101031
881	Marilao	PHL	Central Luzon	101017
882	Malita	PHL	Southern Mindanao	100000
883	Dipolog	PHL	Western Mindanao	99862
884	Cavite	PHL	Southern Tagalog	99367
885	Danao	PHL	Central Visayas	98781
886	Bislig	PHL	Caraga	97860
887	Talavera	PHL	Central Luzon	97329
888	Guagua	PHL	Central Luzon	96858
889	Bayambang	PHL	Ilocos	96609
890	Nasugbu	PHL	Southern Tagalog	96113
891	Baybay	PHL	Eastern Visayas	95630
892	Capas	PHL	Central Luzon	95219
893	Sultan Kudarat	PHL	ARMM	94861
894	Laoag	PHL	Ilocos	94466
895	Bayugan	PHL	Caraga	93623
896	Malungon	PHL	Southern Mindanao	93232
897	Santa Cruz	PHL	Southern Tagalog	92694
898	Sorsogon	PHL	Bicol	92512
899	Candelaria	PHL	Southern Tagalog	92429
900	Ligao	PHL	Bicol	90603
901	Torshavn	FRO	Streymoyar	14542
902	Libreville	GAB	Estuaire	419000
903	Serekunda	GMB	Kombo St Mary	102600
904	Banjul	GMB	Banjul	42326
905	Tbilisi	GEO	Tbilisi	1235200
906	Kutaisi	GEO	Imereti	240900
907	Rustavi	GEO	Kvemo Kartli	155400
908	Batumi	GEO	Adzaria [Atdara]	137700
909	Sohumi	GEO	Abhasia [Aphazeti]	111700
910	Accra	GHA	Greater Accra	1070000
911	Kumasi	GHA	Ashanti	385192
912	Tamale	GHA	Northern	151069
913	Tema	GHA	Greater Accra	109975
914	Sekondi-Takoradi	GHA	Western	103653
915	Gibraltar	GIB	A	27025
916	Saint Georges	GRD	St George	4621
917	Nuuk	GRL	Kitaa	13445
918	Les Abymes	GLP	Grande-Terre	62947
919	Basse-Terre	GLP	Basse-Terre	12433
920	Tamuning	GUM	A	9500
921	Agaaa	GUM	A	1139
922	Ciudad de Guatemala	GTM	Guatemala	823301
923	Mixco	GTM	Guatemala	209791
924	Villa Nueva	GTM	Guatemala	101295
925	Quetzaltenango	GTM	Quetzaltenango	90801
926	Conakry	GIN	Conakry	1090610
927	Bissau	GNB	Bissau	241000
928	Georgetown	GUY	Georgetown	254000
929	Port-au-Prince	HTI	Ouest	884472
930	Carrefour	HTI	Ouest	290204
931	Delmas	HTI	Ouest	240429
932	Le-Cap-Haitien	HTI	Nord	102233
933	Tegucigalpa	HND	Distrito Central	813900
934	San Pedro Sula	HND	Cortes	383900
935	La Ceiba	HND	Atlantida	89200
936	Kowloon and New Kowloon	HKG	Kowloon and New Kowl	1987996
937	Victoria	HKG	Hongkong	1312637
938	Longyearbyen	SJM	Lansimaa	1438
939	Jakarta	IDN	Jakarta Raya	9604900
940	Surabaya	IDN	East Java	2663820
941	Bandung	IDN	West Java	2429000
942	Medan	IDN	Sumatera Utara	1843919
943	Palembang	IDN	Sumatera Selatan	1222764
944	Tangerang	IDN	West Java	1198300
945	Semarang	IDN	Central Java	1104405
946	Ujung Pandang	IDN	Sulawesi Selatan	1060257
947	Malang	IDN	East Java	716862
948	Bandar Lampung	IDN	Lampung	680332
949	Bekasi	IDN	West Java	644300
950	Padang	IDN	Sumatera Barat	534474
951	Surakarta	IDN	Central Java	518600
952	Banjarmasin	IDN	Kalimantan Selatan	482931
953	Pekan Baru	IDN	Riau	438638
954	Denpasar	IDN	Bali	435000
955	Yogyakarta	IDN	Yogyakarta	418944
956	Pontianak	IDN	Kalimantan Barat	409632
957	Samarinda	IDN	Kalimantan Timur	399175
958	Jambi	IDN	Jambi	385201
959	Depok	IDN	West Java	365200
960	Cimahi	IDN	West Java	344600
961	Balikpapan	IDN	Kalimantan Timur	338752
962	Manado	IDN	Sulawesi Utara	332288
963	Mataram	IDN	Nusa Tenggara Barat	306600
964	Pekalongan	IDN	Central Java	301504
965	Tegal	IDN	Central Java	289744
966	Bogor	IDN	West Java	285114
967	Ciputat	IDN	West Java	270800
968	Pondokgede	IDN	West Java	263200
969	Cirebon	IDN	West Java	254406
970	Kediri	IDN	East Java	253760
971	Ambon	IDN	Molukit	249312
972	Jember	IDN	East Java	218500
973	Cilacap	IDN	Central Java	206900
974	Cimanggis	IDN	West Java	205100
975	Pematang Siantar	IDN	Sumatera Utara	203056
976	Purwokerto	IDN	Central Java	202500
977	Ciomas	IDN	West Java	187400
978	Tasikmalaya	IDN	West Java	179800
979	Madiun	IDN	East Java	171532
980	Bengkulu	IDN	Bengkulu	146439
981	Karawang	IDN	West Java	145000
982	Banda Aceh	IDN	Aceh	143409
983	Palu	IDN	Sulawesi Tengah	142800
984	Pasuruan	IDN	East Java	134019
985	Kupang	IDN	Nusa Tenggara Timur	129300
986	Tebing Tinggi	IDN	Sumatera Utara	129300
987	Percut Sei Tuan	IDN	Sumatera Utara	129000
988	Binjai	IDN	Sumatera Utara	127222
989	Sukabumi	IDN	West Java	125766
990	Waru	IDN	East Java	124300
991	Pangkal Pinang	IDN	Sumatera Selatan	124000
992	Magelang	IDN	Central Java	123800
993	Blitar	IDN	East Java	122600
994	Serang	IDN	West Java	122400
995	Probolinggo	IDN	East Java	120770
996	Cilegon	IDN	West Java	117000
997	Cianjur	IDN	West Java	114300
998	Ciparay	IDN	West Java	111500
999	Lhokseumawe	IDN	Aceh	109600
1000	Taman	IDN	East Java	107000
1001	Depok	IDN	Yogyakarta	106800
1002	Citeureup	IDN	West Java	105100
1003	Pemalang	IDN	Central Java	103500
1004	Klaten	IDN	Central Java	103300
1005	Salatiga	IDN	Central Java	103000
1006	Cibinong	IDN	West Java	101300
1007	Palangka Raya	IDN	Kalimantan Tengah	99693
1008	Mojokerto	IDN	East Java	96626
1009	Purwakarta	IDN	West Java	95900
1010	Garut	IDN	West Java	95800
1011	Kudus	IDN	Central Java	95300
1012	Kendari	IDN	Sulawesi Tenggara	94800
1013	Jaya Pura	IDN	West Irian	94700
1014	Gorontalo	IDN	Sulawesi Utara	94058
1015	Majalaya	IDN	West Java	93200
1016	Pondok Aren	IDN	West Java	92700
1017	Jombang	IDN	East Java	92600
1018	Sunggal	IDN	Sumatera Utara	92300
1019	Batam	IDN	Riau	91871
1020	Padang Sidempuan	IDN	Sumatera Utara	91200
1021	Sawangan	IDN	West Java	91100
1022	Banyuwangi	IDN	East Java	89900
1023	Tanjung Pinang	IDN	Riau	89900
1024	Mumbai (Bombay)	IND	Maharashtra	10500000
1025	Delhi	IND	Delhi	7206704
1026	Calcutta [Kolkata]	IND	West Bengali	4399819
1027	Chennai (Madras)	IND	Tamil Nadu	3841396
1028	Hyderabad	IND	Andhra Pradesh	2964638
1029	Ahmedabad	IND	Gujarat	2876710
1030	Bangalore	IND	Karnataka	2660088
1031	Kanpur	IND	Uttar Pradesh	1874409
1032	Nagpur	IND	Maharashtra	1624752
1033	Lucknow	IND	Uttar Pradesh	1619115
1034	Pune	IND	Maharashtra	1566651
1035	Surat	IND	Gujarat	1498817
1036	Jaipur	IND	Rajasthan	1458483
1037	Indore	IND	Madhya Pradesh	1091674
1038	Bhopal	IND	Madhya Pradesh	1062771
1039	Ludhiana	IND	Punjab	1042740
1040	Vadodara (Baroda)	IND	Gujarat	1031346
1041	Kalyan	IND	Maharashtra	1014557
1042	Madurai	IND	Tamil Nadu	977856
1043	Haora (Howrah)	IND	West Bengali	950435
1044	Varanasi (Benares)	IND	Uttar Pradesh	929270
1045	Patna	IND	Bihar	917243
1046	Srinagar	IND	Jammu and Kashmir	892506
1047	Agra	IND	Uttar Pradesh	891790
1048	Coimbatore	IND	Tamil Nadu	816321
1049	Thane (Thana)	IND	Maharashtra	803389
1050	Allahabad	IND	Uttar Pradesh	792858
1051	Meerut	IND	Uttar Pradesh	753778
1052	Vishakhapatnam	IND	Andhra Pradesh	752037
1053	Jabalpur	IND	Madhya Pradesh	741927
1054	Amritsar	IND	Punjab	708835
1055	Faridabad	IND	Haryana	703592
1056	Vijayawada	IND	Andhra Pradesh	701827
1057	Gwalior	IND	Madhya Pradesh	690765
1058	Jodhpur	IND	Rajasthan	666279
1059	Nashik (Nasik)	IND	Maharashtra	656925
1060	Hubli-Dharwad	IND	Karnataka	648298
1061	Solapur (Sholapur)	IND	Maharashtra	604215
1062	Ranchi	IND	Jharkhand	599306
1063	Bareilly	IND	Uttar Pradesh	587211
1064	Guwahati (Gauhati)	IND	Assam	584342
1065	Shambajinagar (Aurangabad)	IND	Maharashtra	573272
1066	Cochin (Kochi)	IND	Kerala	564589
1067	Rajkot	IND	Gujarat	559407
1068	Kota	IND	Rajasthan	537371
1069	Thiruvananthapuram (Trivandrum	IND	Kerala	524006
1070	Pimpri-Chinchwad	IND	Maharashtra	517083
1071	Jalandhar (Jullundur)	IND	Punjab	509510
1072	Gorakhpur	IND	Uttar Pradesh	505566
1073	Chandigarh	IND	Chandigarh	504094
1074	Mysore	IND	Karnataka	480692
1075	Aligarh	IND	Uttar Pradesh	480520
1076	Guntur	IND	Andhra Pradesh	471051
1077	Jamshedpur	IND	Jharkhand	460577
1078	Ghaziabad	IND	Uttar Pradesh	454156
1079	Warangal	IND	Andhra Pradesh	447657
1080	Raipur	IND	Chhatisgarh	438639
1081	Moradabad	IND	Uttar Pradesh	429214
1082	Durgapur	IND	West Bengali	425836
1083	Amravati	IND	Maharashtra	421576
1084	Calicut (Kozhikode)	IND	Kerala	419831
1085	Bikaner	IND	Rajasthan	416289
1086	Bhubaneswar	IND	Orissa	411542
1087	Kolhapur	IND	Maharashtra	406370
1088	Kataka (Cuttack)	IND	Orissa	403418
1089	Ajmer	IND	Rajasthan	402700
1090	Bhavnagar	IND	Gujarat	402338
1091	Tiruchirapalli	IND	Tamil Nadu	387223
1092	Bhilai	IND	Chhatisgarh	386159
1093	Bhiwandi	IND	Maharashtra	379070
1094	Saharanpur	IND	Uttar Pradesh	374945
1095	Ulhasnagar	IND	Maharashtra	369077
1096	Salem	IND	Tamil Nadu	366712
1097	Ujjain	IND	Madhya Pradesh	362266
1098	Malegaon	IND	Maharashtra	342595
1099	Jamnagar	IND	Gujarat	341637
1100	Bokaro Steel City	IND	Jharkhand	333683
1101	Akola	IND	Maharashtra	328034
1102	Belgaum	IND	Karnataka	326399
1103	Rajahmundry	IND	Andhra Pradesh	324851
1104	Nellore	IND	Andhra Pradesh	316606
1105	Udaipur	IND	Rajasthan	308571
1106	New Bombay	IND	Maharashtra	307297
1107	Bhatpara	IND	West Bengali	304952
1108	Gulbarga	IND	Karnataka	304099
1109	New Delhi	IND	Delhi	301297
1110	Jhansi	IND	Uttar Pradesh	300850
1111	Gaya	IND	Bihar	291675
1112	Kakinada	IND	Andhra Pradesh	279980
1113	Dhule (Dhulia)	IND	Maharashtra	278317
1114	Panihati	IND	West Bengali	275990
1115	Nanded (Nander)	IND	Maharashtra	275083
1116	Mangalore	IND	Karnataka	273304
1117	Dehra Dun	IND	Uttaranchal	270159
1118	Kamarhati	IND	West Bengali	266889
1119	Davangere	IND	Karnataka	266082
1120	Asansol	IND	West Bengali	262188
1121	Bhagalpur	IND	Bihar	253225
1122	Bellary	IND	Karnataka	245391
1123	Barddhaman (Burdwan)	IND	West Bengali	245079
1124	Rampur	IND	Uttar Pradesh	243742
1125	Jalgaon	IND	Maharashtra	242193
1126	Muzaffarpur	IND	Bihar	241107
1127	Nizamabad	IND	Andhra Pradesh	241034
1128	Muzaffarnagar	IND	Uttar Pradesh	240609
1129	Patiala	IND	Punjab	238368
1130	Shahjahanpur	IND	Uttar Pradesh	237713
1131	Kurnool	IND	Andhra Pradesh	236800
1132	Tiruppur (Tirupper)	IND	Tamil Nadu	235661
1133	Rohtak	IND	Haryana	233400
1134	South Dum Dum	IND	West Bengali	232811
1135	Mathura	IND	Uttar Pradesh	226691
1136	Chandrapur	IND	Maharashtra	226105
1137	Barahanagar (Baranagar)	IND	West Bengali	224821
1138	Darbhanga	IND	Bihar	218391
1139	Siliguri (Shiliguri)	IND	West Bengali	216950
1140	Raurkela	IND	Orissa	215489
1141	Ambattur	IND	Tamil Nadu	215424
1142	Panipat	IND	Haryana	215218
1143	Firozabad	IND	Uttar Pradesh	215128
1144	Ichalkaranji	IND	Maharashtra	214950
1145	Jammu	IND	Jammu and Kashmir	214737
1146	Ramagundam	IND	Andhra Pradesh	214384
1147	Eluru	IND	Andhra Pradesh	212866
1148	Brahmapur	IND	Orissa	210418
1149	Alwar	IND	Rajasthan	205086
1150	Pondicherry	IND	Pondicherry	203065
1151	Thanjavur	IND	Tamil Nadu	202013
1152	Bihar Sharif	IND	Bihar	201323
1153	Tuticorin	IND	Tamil Nadu	199854
1154	Imphal	IND	Manipur	198535
1155	Latur	IND	Maharashtra	197408
1156	Sagar	IND	Madhya Pradesh	195346
1157	Farrukhabad-cum-Fatehgarh	IND	Uttar Pradesh	194567
1158	Sangli	IND	Maharashtra	193197
1159	Parbhani	IND	Maharashtra	190255
1160	Nagar Coil	IND	Tamil Nadu	190084
1161	Bijapur	IND	Karnataka	186939
1162	Kukatpalle	IND	Andhra Pradesh	185378
1163	Bally	IND	West Bengali	184474
1164	Bhilwara	IND	Rajasthan	183965
1165	Ratlam	IND	Madhya Pradesh	183375
1166	Avadi	IND	Tamil Nadu	183215
1167	Dindigul	IND	Tamil Nadu	182477
1168	Ahmadnagar	IND	Maharashtra	181339
1169	Bilaspur	IND	Chhatisgarh	179833
1170	Shimoga	IND	Karnataka	179258
1171	Kharagpur	IND	West Bengali	177989
1172	Mira Bhayandar	IND	Maharashtra	175372
1173	Vellore	IND	Tamil Nadu	175061
1174	Jalna	IND	Maharashtra	174985
1175	Burnpur	IND	West Bengali	174933
1176	Anantapur	IND	Andhra Pradesh	174924
1177	Allappuzha (Alleppey)	IND	Kerala	174666
1178	Tirupati	IND	Andhra Pradesh	174369
1179	Karnal	IND	Haryana	173751
1180	Burhanpur	IND	Madhya Pradesh	172710
1181	Hisar (Hissar)	IND	Haryana	172677
1182	Tiruvottiyur	IND	Tamil Nadu	172562
1183	Mirzapur-cum-Vindhyachal	IND	Uttar Pradesh	169336
1184	Secunderabad	IND	Andhra Pradesh	167461
1185	Nadiad	IND	Gujarat	167051
1186	Dewas	IND	Madhya Pradesh	164364
1187	Murwara (Katni)	IND	Madhya Pradesh	163431
1188	Ganganagar	IND	Rajasthan	161482
1189	Vizianagaram	IND	Andhra Pradesh	160359
1190	Erode	IND	Tamil Nadu	159232
1191	Machilipatnam (Masulipatam)	IND	Andhra Pradesh	159110
1192	Bhatinda (Bathinda)	IND	Punjab	159042
1193	Raichur	IND	Karnataka	157551
1194	Agartala	IND	Tripura	157358
1195	Arrah (Ara)	IND	Bihar	157082
1196	Satna	IND	Madhya Pradesh	156630
1197	Lalbahadur Nagar	IND	Andhra Pradesh	155500
1198	Aizawl	IND	Mizoram	155240
1199	Uluberia	IND	West Bengali	155172
1200	Katihar	IND	Bihar	154367
1201	Cuddalore	IND	Tamil Nadu	153086
1202	Hugli-Chinsurah	IND	West Bengali	151806
1203	Dhanbad	IND	Jharkhand	151789
1204	Raiganj	IND	West Bengali	151045
1205	Sambhal	IND	Uttar Pradesh	150869
1206	Durg	IND	Chhatisgarh	150645
1207	Munger (Monghyr)	IND	Bihar	150112
1208	Kanchipuram	IND	Tamil Nadu	150100
1209	North Dum Dum	IND	West Bengali	149965
1210	Karimnagar	IND	Andhra Pradesh	148583
1211	Bharatpur	IND	Rajasthan	148519
1212	Sikar	IND	Rajasthan	148272
1213	Hardwar (Haridwar)	IND	Uttaranchal	147305
1214	Dabgram	IND	West Bengali	147217
1215	Morena	IND	Madhya Pradesh	147124
1216	Noida	IND	Uttar Pradesh	146514
1217	Hapur	IND	Uttar Pradesh	146262
1218	Bhusawal	IND	Maharashtra	145143
1219	Khandwa	IND	Madhya Pradesh	145133
1220	Yamuna Nagar	IND	Haryana	144346
1221	Sonipat (Sonepat)	IND	Haryana	143922
1222	Tenali	IND	Andhra Pradesh	143726
1223	Raurkela Civil Township	IND	Orissa	140408
1224	Kollam (Quilon)	IND	Kerala	139852
1225	Kumbakonam	IND	Tamil Nadu	139483
1226	Ingraj Bazar (English Bazar)	IND	West Bengali	139204
1227	Timkur	IND	Karnataka	138903
1228	Amroha	IND	Uttar Pradesh	137061
1229	Serampore	IND	West Bengali	137028
1230	Chapra	IND	Bihar	136877
1231	Pali	IND	Rajasthan	136842
1232	Maunath Bhanjan	IND	Uttar Pradesh	136697
1233	Adoni	IND	Andhra Pradesh	136182
1234	Jaunpur	IND	Uttar Pradesh	136062
1235	Tirunelveli	IND	Tamil Nadu	135825
1236	Bahraich	IND	Uttar Pradesh	135400
1237	Gadag Betigeri	IND	Karnataka	134051
1238	Proddatur	IND	Andhra Pradesh	133914
1239	Chittoor	IND	Andhra Pradesh	133462
1240	Barrackpur	IND	West Bengali	133265
1241	Bharuch (Broach)	IND	Gujarat	133102
1242	Naihati	IND	West Bengali	132701
1243	Shillong	IND	Meghalaya	131719
1244	Sambalpur	IND	Orissa	131138
1245	Junagadh	IND	Gujarat	130484
1246	Rae Bareli	IND	Uttar Pradesh	129904
1247	Rewa	IND	Madhya Pradesh	128981
1248	Gurgaon	IND	Haryana	128608
1249	Khammam	IND	Andhra Pradesh	127992
1250	Bulandshahr	IND	Uttar Pradesh	127201
1251	Navsari	IND	Gujarat	126089
1252	Malkajgiri	IND	Andhra Pradesh	126066
1253	Midnapore (Medinipur)	IND	West Bengali	125498
1254	Miraj	IND	Maharashtra	125407
1255	Raj Nandgaon	IND	Chhatisgarh	125371
1256	Alandur	IND	Tamil Nadu	125244
1257	Puri	IND	Orissa	125199
1258	Navadwip	IND	West Bengali	125037
1259	Sirsa	IND	Haryana	125000
1260	Korba	IND	Chhatisgarh	124501
1261	Faizabad	IND	Uttar Pradesh	124437
1262	Etawah	IND	Uttar Pradesh	124072
1263	Pathankot	IND	Punjab	123930
1264	Gandhinagar	IND	Gujarat	123359
1265	Palghat (Palakkad)	IND	Kerala	123289
1266	Veraval	IND	Gujarat	123000
1267	Hoshiarpur	IND	Punjab	122705
1268	Ambala	IND	Haryana	122596
1269	Sitapur	IND	Uttar Pradesh	121842
1270	Bhiwani	IND	Haryana	121629
1271	Cuddapah	IND	Andhra Pradesh	121463
1272	Bhimavaram	IND	Andhra Pradesh	121314
1273	Krishnanagar	IND	West Bengali	121110
1274	Chandannagar	IND	West Bengali	120378
1275	Mandya	IND	Karnataka	120265
1276	Dibrugarh	IND	Assam	120127
1277	Nandyal	IND	Andhra Pradesh	119813
1278	Balurghat	IND	West Bengali	119796
1279	Neyveli	IND	Tamil Nadu	118080
1280	Fatehpur	IND	Uttar Pradesh	117675
1281	Mahbubnagar	IND	Andhra Pradesh	116833
1282	Budaun	IND	Uttar Pradesh	116695
1283	Porbandar	IND	Gujarat	116671
1284	Silchar	IND	Assam	115483
1285	Berhampore (Baharampur)	IND	West Bengali	115144
1286	Purnea (Purnia)	IND	Jharkhand	114912
1287	Bankura	IND	West Bengali	114876
1288	Rajapalaiyam	IND	Tamil Nadu	114202
1289	Titagarh	IND	West Bengali	114085
1290	Halisahar	IND	West Bengali	114028
1291	Hathras	IND	Uttar Pradesh	113285
1292	Bhir (Bid)	IND	Maharashtra	112434
1293	Pallavaram	IND	Tamil Nadu	111866
1294	Anand	IND	Gujarat	110266
1295	Mango	IND	Jharkhand	110024
1296	Santipur	IND	West Bengali	109956
1297	Bhind	IND	Madhya Pradesh	109755
1298	Gondiya	IND	Maharashtra	109470
1299	Tiruvannamalai	IND	Tamil Nadu	109196
1300	Yeotmal (Yavatmal)	IND	Maharashtra	108578
1301	Kulti-Barakar	IND	West Bengali	108518
1302	Moga	IND	Punjab	108304
1303	Shivapuri	IND	Madhya Pradesh	108277
1304	Bidar	IND	Karnataka	108016
1305	Guntakal	IND	Andhra Pradesh	107592
1306	Unnao	IND	Uttar Pradesh	107425
1307	Barasat	IND	West Bengali	107365
1308	Tambaram	IND	Tamil Nadu	107187
1309	Abohar	IND	Punjab	107163
1310	Pilibhit	IND	Uttar Pradesh	106605
1311	Valparai	IND	Tamil Nadu	106523
1312	Gonda	IND	Uttar Pradesh	106078
1313	Surendranagar	IND	Gujarat	105973
1314	Qutubullapur	IND	Andhra Pradesh	105380
1315	Beawar	IND	Rajasthan	105363
1316	Hindupur	IND	Andhra Pradesh	104651
1317	Gandhidham	IND	Gujarat	104585
1318	Haldwani-cum-Kathgodam	IND	Uttaranchal	104195
1319	Tellicherry (Thalassery)	IND	Kerala	103579
1320	Wardha	IND	Maharashtra	102985
1321	Rishra	IND	West Bengali	102649
1322	Bhuj	IND	Gujarat	102176
1323	Modinagar	IND	Uttar Pradesh	101660
1324	Gudivada	IND	Andhra Pradesh	101656
1325	Basirhat	IND	West Bengali	101409
1326	Uttarpara-Kotrung	IND	West Bengali	100867
1327	Ongole	IND	Andhra Pradesh	100836
1328	North Barrackpur	IND	West Bengali	100513
1329	Guna	IND	Madhya Pradesh	100490
1330	Haldia	IND	West Bengali	100347
1331	Habra	IND	West Bengali	100223
1332	Kanchrapara	IND	West Bengali	100194
1333	Tonk	IND	Rajasthan	100079
1334	Champdani	IND	West Bengali	98818
1335	Orai	IND	Uttar Pradesh	98640
1336	Pudukkottai	IND	Tamil Nadu	98619
1337	Sasaram	IND	Bihar	98220
1338	Hazaribag	IND	Jharkhand	97712
1339	Palayankottai	IND	Tamil Nadu	97662
1340	Banda	IND	Uttar Pradesh	97227
1341	Godhra	IND	Gujarat	96813
1342	Hospet	IND	Karnataka	96322
1343	Ashoknagar-Kalyangarh	IND	West Bengali	96315
1344	Achalpur	IND	Maharashtra	96216
1345	Patan	IND	Gujarat	96109
1346	Mandasor	IND	Madhya Pradesh	95758
1347	Damoh	IND	Madhya Pradesh	95661
1348	Satara	IND	Maharashtra	95133
1349	Meerut Cantonment	IND	Uttar Pradesh	94876
1350	Dehri	IND	Bihar	94526
1351	Delhi Cantonment	IND	Delhi	94326
1352	Chhindwara	IND	Madhya Pradesh	93731
1353	Bansberia	IND	West Bengali	93447
1354	Nagaon	IND	Assam	93350
1355	Kanpur Cantonment	IND	Uttar Pradesh	93109
1356	Vidisha	IND	Madhya Pradesh	92917
1357	Bettiah	IND	Bihar	92583
1358	Purulia	IND	Jharkhand	92574
1359	Hassan	IND	Karnataka	90803
1360	Ambala Sadar	IND	Haryana	90712
1361	Baidyabati	IND	West Bengali	90601
1362	Morvi	IND	Gujarat	90357
1363	Raigarh	IND	Chhatisgarh	89166
1364	Vejalpur	IND	Gujarat	89053
1365	Baghdad	IRQ	Baghdad	4336000
1366	Mosul	IRQ	Ninawa	879000
1367	Irbil	IRQ	Irbil	485968
1368	Kirkuk	IRQ	al-Tamim	418624
1369	Basra	IRQ	Basra	406296
1370	al-Sulaymaniya	IRQ	al-Sulaymaniya	364096
1371	al-Najaf	IRQ	al-Najaf	309010
1372	Karbala	IRQ	Karbala	296705
1373	al-Hilla	IRQ	Babil	268834
1374	al-Nasiriya	IRQ	DhiQar	265937
1375	al-Amara	IRQ	Maysan	208797
1376	al-Diwaniya	IRQ	al-Qadisiya	196519
1377	al-Ramadi	IRQ	al-Anbar	192556
1378	al-Kut	IRQ	Wasit	183183
1379	Baquba	IRQ	Diyala	114516
1380	Teheran	IRN	Teheran	6758845
1381	Mashhad	IRN	Khorasan	1887405
1382	Esfahan	IRN	Esfahan	1266072
1383	Tabriz	IRN	East Azerbaidzan	1191043
1384	Shiraz	IRN	Fars	1053025
1385	Karaj	IRN	Teheran	940968
1386	Ahvaz	IRN	Khuzestan	804980
1387	Qom	IRN	Qom	777677
1388	Kermanshah	IRN	Kermanshah	692986
1389	Urmia	IRN	West Azerbaidzan	435200
1390	Zahedan	IRN	Sistan va Baluchesta	419518
1391	Rasht	IRN	Gilan	417748
1392	Hamadan	IRN	Hamadan	401281
1393	Kerman	IRN	Kerman	384991
1394	Arak	IRN	Markazi	380755
1395	Ardebil	IRN	Ardebil	340386
1396	Yazd	IRN	Yazd	326776
1397	Qazvin	IRN	Qazvin	291117
1398	Zanjan	IRN	Zanjan	286295
1399	Sanandaj	IRN	Kordestan	277808
1400	Bandar-e-Abbas	IRN	Hormozgan	273578
1401	Khorramabad	IRN	Lorestan	272815
1402	Eslamshahr	IRN	Teheran	265450
1403	Borujerd	IRN	Lorestan	217804
1404	Abadan	IRN	Khuzestan	206073
1405	Dezful	IRN	Khuzestan	202639
1406	Kashan	IRN	Esfahan	201372
1407	Sari	IRN	Mazandaran	195882
1408	Gorgan	IRN	Golestan	188710
1409	Najafabad	IRN	Esfahan	178498
1410	Sabzevar	IRN	Khorasan	170738
1411	Khomeynishahr	IRN	Esfahan	165888
1412	Amol	IRN	Mazandaran	159092
1413	Neyshabur	IRN	Khorasan	158847
1414	Babol	IRN	Mazandaran	158346
1415	Khoy	IRN	West Azerbaidzan	148944
1416	Malayer	IRN	Hamadan	144373
1417	Bushehr	IRN	Bushehr	143641
1418	Qaemshahr	IRN	Mazandaran	143286
1419	Qarchak	IRN	Teheran	142690
1420	Qods	IRN	Teheran	138278
1421	Sirjan	IRN	Kerman	135024
1422	Bojnurd	IRN	Khorasan	134835
1423	Maragheh	IRN	East Azerbaidzan	132318
1424	Birjand	IRN	Khorasan	127608
1425	Ilam	IRN	Ilam	126346
1426	Bukan	IRN	West Azerbaidzan	120020
1427	Masjed-e-Soleyman	IRN	Khuzestan	116883
1428	Saqqez	IRN	Kordestan	115394
1429	Gonbad-e Qabus	IRN	Mazandaran	111253
1430	Saveh	IRN	Qom	111245
1431	Mahabad	IRN	West Azerbaidzan	107799
1432	Varamin	IRN	Teheran	107233
1433	Andimeshk	IRN	Khuzestan	106923
1434	Khorramshahr	IRN	Khuzestan	105636
1435	Shahrud	IRN	Semnan	104765
1436	Marv Dasht	IRN	Fars	103579
1437	Zabol	IRN	Sistan va Baluchesta	100887
1438	Shahr-e Kord	IRN	Chaharmahal va Bakht	100477
1439	Bandar-e Anzali	IRN	Gilan	98500
1440	Rafsanjan	IRN	Kerman	98300
1441	Marand	IRN	East Azerbaidzan	96400
1442	Torbat-e Heydariyeh	IRN	Khorasan	94600
1443	Jahrom	IRN	Fars	94200
1444	Semnan	IRN	Semnan	91045
1445	Miandoab	IRN	West Azerbaidzan	90100
1446	Qomsheh	IRN	Esfahan	89800
1447	Dublin	IRL	Leinster	481854
1448	Cork	IRL	Munster	127187
1449	Reykjavik	ISL	Hofuoborgarsvaoi	109184
1450	Jerusalem	ISR	Jerusalem	633700
1451	Tel Aviv-Jaffa	ISR	Tel Aviv	348100
1452	Haifa	ISR	Haifa	265700
1453	Rishon Le Ziyyon	ISR	Ha Merkaz	188200
1454	Beerseba	ISR	Ha Darom	163700
1455	Holon	ISR	Tel Aviv	163100
1456	Petah Tiqwa	ISR	Ha Merkaz	159400
1457	Ashdod	ISR	Ha Darom	155800
1458	Netanya	ISR	Ha Merkaz	154900
1459	Bat Yam	ISR	Tel Aviv	137000
1460	Bene Beraq	ISR	Tel Aviv	133900
1461	Ramat Gan	ISR	Tel Aviv	126900
1462	Ashqelon	ISR	Ha Darom	92300
1463	Rehovot	ISR	Ha Merkaz	90300
1464	Roma	ITA	Latium	2643581
1465	Milano	ITA	Lombardia	1300977
1466	Napoli	ITA	Campania	1002619
1467	Torino	ITA	Piemonte	903705
1468	Palermo	ITA	Sisilia	683794
1469	Genova	ITA	Liguria	636104
1470	Bologna	ITA	Emilia-Romagna	381161
1471	Firenze	ITA	Toscana	376662
1472	Catania	ITA	Sisilia	337862
1473	Bari	ITA	Apulia	331848
1474	Venezia	ITA	Veneto	277305
1475	Messina	ITA	Sisilia	259156
1476	Verona	ITA	Veneto	255268
1477	Trieste	ITA	Friuli-Venezia Giuli	216459
1478	Padova	ITA	Veneto	211391
1479	Taranto	ITA	Apulia	208214
1480	Brescia	ITA	Lombardia	191317
1481	Reggio di Calabria	ITA	Calabria	179617
1482	Modena	ITA	Emilia-Romagna	176022
1483	Prato	ITA	Toscana	172473
1484	Parma	ITA	Emilia-Romagna	168717
1485	Cagliari	ITA	Sardinia	165926
1486	Livorno	ITA	Toscana	161673
1487	Perugia	ITA	Umbria	156673
1488	Foggia	ITA	Apulia	154891
1489	Reggio nell Emilia	ITA	Emilia-Romagna	143664
1490	Salerno	ITA	Campania	142055
1491	Ravenna	ITA	Emilia-Romagna	138418
1492	Ferrara	ITA	Emilia-Romagna	132127
1493	Rimini	ITA	Emilia-Romagna	131062
1494	Syrakusa	ITA	Sisilia	126282
1495	Sassari	ITA	Sardinia	120803
1496	Monza	ITA	Lombardia	119516
1497	Bergamo	ITA	Lombardia	117837
1498	Pescara	ITA	Abruzzit	115698
1499	Latina	ITA	Latium	114099
1500	Vicenza	ITA	Veneto	109738
1501	Terni	ITA	Umbria	107770
1502	Forli	ITA	Emilia-Romagna	107475
1503	Trento	ITA	Trentino-Alto Adige	104906
1504	Novara	ITA	Piemonte	102037
1505	Piacenza	ITA	Emilia-Romagna	98384
1506	Ancona	ITA	Marche	98329
1507	Lecce	ITA	Apulia	98208
1508	Bolzano	ITA	Trentino-Alto Adige	97232
1509	Catanzaro	ITA	Calabria	96700
1510	La Spezia	ITA	Liguria	95504
1511	Udine	ITA	Friuli-Venezia Giuli	94932
1512	Torre del Greco	ITA	Campania	94505
1513	Andria	ITA	Apulia	94443
1514	Brindisi	ITA	Apulia	93454
1515	Giugliano in Campania	ITA	Campania	93286
1516	Pisa	ITA	Toscana	92379
1517	Barletta	ITA	Apulia	91904
1518	Arezzo	ITA	Toscana	91729
1519	Alessandria	ITA	Piemonte	90289
1520	Cesena	ITA	Emilia-Romagna	89852
1521	Pesaro	ITA	Marche	88987
1522	Dili	TMP	Dili	47900
1523	Wien	AUT	Wien	1608144
1524	Graz	AUT	Steiermark	240967
1525	Linz	AUT	North Austria	188022
1526	Salzburg	AUT	Salzburg	144247
1527	Innsbruck	AUT	Tiroli	111752
1528	Klagenfurt	AUT	Karnten	91141
1529	Spanish Town	JAM	St. Catherine	110379
1530	Kingston	JAM	St. Andrew	103962
1531	Portmore	JAM	St. Andrew	99799
1532	Tokyo	JPN	Tokyo-to	7980230
1533	Jokohama [Yokohama]	JPN	Kanagawa	3339594
1534	Osaka	JPN	Osaka	2595674
1535	Nagoya	JPN	Aichi	2154376
1536	Sapporo	JPN	Hokkaido	1790886
1537	Kioto	JPN	Kyoto	1461974
1538	Kobe	JPN	Hyogo	1425139
1539	Fukuoka	JPN	Fukuoka	1308379
1540	Kawasaki	JPN	Kanagawa	1217359
1541	Hiroshima	JPN	Hiroshima	1119117
1542	Kitakyushu	JPN	Fukuoka	1016264
1543	Sendai	JPN	Miyagi	989975
1544	Chiba	JPN	Chiba	863930
1545	Sakai	JPN	Osaka	797735
1546	Kumamoto	JPN	Kumamoto	656734
1547	Okayama	JPN	Okayama	624269
1548	Sagamihara	JPN	Kanagawa	586300
1549	Hamamatsu	JPN	Shizuoka	568796
1550	Kagoshima	JPN	Kagoshima	549977
1551	Funabashi	JPN	Chiba	545299
1552	Higashiosaka	JPN	Osaka	517785
1553	Hachioji	JPN	Tokyo-to	513451
1554	Niigata	JPN	Niigata	497464
1555	Amagasaki	JPN	Hyogo	481434
1556	Himeji	JPN	Hyogo	475167
1557	Shizuoka	JPN	Shizuoka	473854
1558	Urawa	JPN	Saitama	469675
1559	Matsuyama	JPN	Ehime	466133
1560	Matsudo	JPN	Chiba	461126
1561	Kanazawa	JPN	Ishikawa	455386
1562	Kawaguchi	JPN	Saitama	452155
1563	Ichikawa	JPN	Chiba	441893
1564	Omiya	JPN	Saitama	441649
1565	Utsunomiya	JPN	Tochigi	440353
1566	Oita	JPN	Oita	433401
1567	Nagasaki	JPN	Nagasaki	432759
1568	Yokosuka	JPN	Kanagawa	430200
1569	Kurashiki	JPN	Okayama	425103
1570	Gifu	JPN	Gifu	408007
1571	Hirakata	JPN	Osaka	403151
1572	Nishinomiya	JPN	Hyogo	397618
1573	Toyonaka	JPN	Osaka	396689
1574	Wakayama	JPN	Wakayama	391233
1575	Fukuyama	JPN	Hiroshima	376921
1576	Fujisawa	JPN	Kanagawa	372840
1577	Asahikawa	JPN	Hokkaido	364813
1578	Machida	JPN	Tokyo-to	364197
1579	Nara	JPN	Nara	362812
1580	Takatsuki	JPN	Osaka	361747
1581	Iwaki	JPN	Fukushima	361737
1582	Nagano	JPN	Nagano	361391
1583	Toyohashi	JPN	Aichi	360066
1584	Toyota	JPN	Aichi	346090
1585	Suita	JPN	Osaka	345750
1586	Takamatsu	JPN	Kagawa	332471
1587	Koriyama	JPN	Fukushima	330335
1588	Okazaki	JPN	Aichi	328711
1589	Kawagoe	JPN	Saitama	327211
1590	Tokorozawa	JPN	Saitama	325809
1591	Toyama	JPN	Toyama	325790
1592	Kochi	JPN	Kochi	324710
1593	Kashiwa	JPN	Chiba	320296
1594	Akita	JPN	Akita	314440
1595	Miyazaki	JPN	Miyazaki	303784
1596	Koshigaya	JPN	Saitama	301446
1597	Naha	JPN	Okinawa	299851
1598	Aomori	JPN	Aomori	295969
1599	Hakodate	JPN	Hokkaido	294788
1600	Akashi	JPN	Hyogo	292253
1601	Yokkaichi	JPN	Mie	288173
1602	Fukushima	JPN	Fukushima	287525
1603	Morioka	JPN	Iwate	287353
1604	Maebashi	JPN	Gumma	284473
1605	Kasugai	JPN	Aichi	282348
1606	Otsu	JPN	Shiga	282070
1607	Ichihara	JPN	Chiba	279280
1608	Yao	JPN	Osaka	276421
1609	Ichinomiya	JPN	Aichi	270828
1610	Tokushima	JPN	Tokushima	269649
1611	Kakogawa	JPN	Hyogo	266281
1612	Ibaraki	JPN	Osaka	261020
1613	Neyagawa	JPN	Osaka	257315
1614	Shimonoseki	JPN	Yamaguchi	257263
1615	Yamagata	JPN	Yamagata	255617
1616	Fukui	JPN	Fukui	254818
1617	Hiratsuka	JPN	Kanagawa	254207
1618	Mito	JPN	Ibaragi	246559
1619	Sasebo	JPN	Nagasaki	244240
1620	Hachinohe	JPN	Aomori	242979
1621	Takasaki	JPN	Gumma	239124
1622	Shimizu	JPN	Shizuoka	239123
1623	Kurume	JPN	Fukuoka	235611
1624	Fuji	JPN	Shizuoka	231527
1625	Soka	JPN	Saitama	222768
1626	Fuchu	JPN	Tokyo-to	220576
1627	Chigasaki	JPN	Kanagawa	216015
1628	Atsugi	JPN	Kanagawa	212407
1629	Numazu	JPN	Shizuoka	211382
1630	Ageo	JPN	Saitama	209442
1631	Yamato	JPN	Kanagawa	208234
1632	Matsumoto	JPN	Nagano	206801
1633	Kure	JPN	Hiroshima	206504
1634	Takarazuka	JPN	Hyogo	205993
1635	Kasukabe	JPN	Saitama	201838
1636	Chofu	JPN	Tokyo-to	201585
1637	Odawara	JPN	Kanagawa	200171
1638	Kofu	JPN	Yamanashi	199753
1639	Kushiro	JPN	Hokkaido	197608
1640	Kishiwada	JPN	Osaka	197276
1641	Hitachi	JPN	Ibaragi	196622
1642	Nagaoka	JPN	Niigata	192407
1643	Itami	JPN	Hyogo	190886
1644	Uji	JPN	Kyoto	188735
1645	Suzuka	JPN	Mie	184061
1646	Hirosaki	JPN	Aomori	177522
1647	Ube	JPN	Yamaguchi	175206
1648	Kodaira	JPN	Tokyo-to	174984
1649	Takaoka	JPN	Toyama	174380
1650	Obihiro	JPN	Hokkaido	173685
1651	Tomakomai	JPN	Hokkaido	171958
1652	Saga	JPN	Saga	170034
1653	Sakura	JPN	Chiba	168072
1654	Kamakura	JPN	Kanagawa	167661
1655	Mitaka	JPN	Tokyo-to	167268
1656	Izumi	JPN	Osaka	166979
1657	Hino	JPN	Tokyo-to	166770
1658	Hadano	JPN	Kanagawa	166512
1659	Ashikaga	JPN	Tochigi	165243
1660	Tsu	JPN	Mie	164543
1661	Sayama	JPN	Saitama	162472
1662	Yachiyo	JPN	Chiba	161222
1663	Tsukuba	JPN	Ibaragi	160768
1664	Tachikawa	JPN	Tokyo-to	159430
1665	Kumagaya	JPN	Saitama	157171
1666	Moriguchi	JPN	Osaka	155941
1667	Otaru	JPN	Hokkaido	155784
1668	Anjo	JPN	Aichi	153823
1669	Narashino	JPN	Chiba	152849
1670	Oyama	JPN	Tochigi	152820
1671	Ogaki	JPN	Gifu	151758
1672	Matsue	JPN	Shimane	149821
1673	Kawanishi	JPN	Hyogo	149794
1674	Hitachinaka	JPN	Tokyo-to	148006
1675	Niiza	JPN	Saitama	147744
1676	Nagareyama	JPN	Chiba	147738
1677	Tottori	JPN	Tottori	147523
1678	Tama	JPN	Ibaragi	146712
1679	Iruma	JPN	Saitama	145922
1680	Ota	JPN	Gumma	145317
1681	Omuta	JPN	Fukuoka	142889
1682	Komaki	JPN	Aichi	139827
1683	Ome	JPN	Tokyo-to	139216
1684	Kadoma	JPN	Osaka	138953
1685	Yamaguchi	JPN	Yamaguchi	138210
1686	Higashimurayama	JPN	Tokyo-to	136970
1687	Yonago	JPN	Tottori	136461
1688	Matsubara	JPN	Osaka	135010
1689	Musashino	JPN	Tokyo-to	134426
1690	Tsuchiura	JPN	Ibaragi	134072
1691	Joetsu	JPN	Niigata	133505
1692	Miyakonojo	JPN	Miyazaki	133183
1693	Misato	JPN	Saitama	132957
1694	Kakamigahara	JPN	Gifu	131831
1695	Daito	JPN	Osaka	130594
1696	Seto	JPN	Aichi	130470
1697	Kariya	JPN	Aichi	127969
1698	Urayasu	JPN	Chiba	127550
1699	Beppu	JPN	Oita	127486
1700	Niihama	JPN	Ehime	127207
1701	Minoo	JPN	Osaka	127026
1702	Fujieda	JPN	Shizuoka	126897
1703	Abiko	JPN	Chiba	126670
1704	Nobeoka	JPN	Miyazaki	125547
1705	Tondabayashi	JPN	Osaka	125094
1706	Ueda	JPN	Nagano	124217
1707	Kashihara	JPN	Nara	124013
1708	Matsusaka	JPN	Mie	123582
1709	Isesaki	JPN	Gumma	123285
1710	Zama	JPN	Kanagawa	122046
1711	Kisarazu	JPN	Chiba	121967
1712	Noda	JPN	Chiba	121030
1713	Ishinomaki	JPN	Miyagi	120963
1714	Fujinomiya	JPN	Shizuoka	119714
1715	Kawachinagano	JPN	Osaka	119666
1716	Imabari	JPN	Ehime	119357
1717	Aizuwakamatsu	JPN	Fukushima	119287
1718	Higashihiroshima	JPN	Hiroshima	119166
1719	Habikino	JPN	Osaka	118968
1720	Ebetsu	JPN	Hokkaido	118805
1721	Hofu	JPN	Yamaguchi	118751
1722	Kiryu	JPN	Gumma	118326
1723	Okinawa	JPN	Okinawa	117748
1724	Yaizu	JPN	Shizuoka	117258
1725	Toyokawa	JPN	Aichi	115781
1726	Ebina	JPN	Kanagawa	115571
1727	Asaka	JPN	Saitama	114815
1728	Higashikurume	JPN	Tokyo-to	111666
1729	Ikoma	JPN	Nara	111645
1730	Kitami	JPN	Hokkaido	111295
1731	Koganei	JPN	Tokyo-to	110969
1732	Iwatsuki	JPN	Saitama	110034
1733	Mishima	JPN	Shizuoka	109699
1734	Handa	JPN	Aichi	108600
1735	Muroran	JPN	Hokkaido	108275
1736	Komatsu	JPN	Ishikawa	107937
1737	Yatsushiro	JPN	Kumamoto	107661
1738	Iida	JPN	Nagano	107583
1739	Tokuyama	JPN	Yamaguchi	107078
1740	Kokubunji	JPN	Tokyo-to	106996
1741	Akishima	JPN	Tokyo-to	106914
1742	Iwakuni	JPN	Yamaguchi	106647
1743	Kusatsu	JPN	Shiga	106232
1744	Kuwana	JPN	Mie	106121
1745	Sanda	JPN	Hyogo	105643
1746	Hikone	JPN	Shiga	105508
1747	Toda	JPN	Saitama	103969
1748	Tajimi	JPN	Gifu	103171
1749	Ikeda	JPN	Osaka	102710
1750	Fukaya	JPN	Saitama	102156
1751	Ise	JPN	Mie	101732
1752	Sakata	JPN	Yamagata	101651
1753	Kasuga	JPN	Fukuoka	101344
1754	Kamagaya	JPN	Chiba	100821
1755	Tsuruoka	JPN	Yamagata	100713
1756	Hoya	JPN	Tokyo-to	100313
1757	Nishio	JPN	Chiba	100032
1758	Tokai	JPN	Aichi	99738
1759	Inazawa	JPN	Aichi	98746
1760	Sakado	JPN	Saitama	98221
1761	Isehara	JPN	Kanagawa	98123
1762	Takasago	JPN	Hyogo	97632
1763	Fujimi	JPN	Saitama	96972
1764	Urasoe	JPN	Okinawa	96002
1765	Yonezawa	JPN	Yamagata	95592
1766	Konan	JPN	Aichi	95521
1767	Yamatokoriyama	JPN	Nara	95165
1768	Maizuru	JPN	Kyoto	94784
1769	Onomichi	JPN	Hiroshima	93756
1770	Higashimatsuyama	JPN	Saitama	93342
1771	Kimitsu	JPN	Chiba	93216
1772	Isahaya	JPN	Nagasaki	93058
1773	Kanuma	JPN	Tochigi	93053
1774	Izumisano	JPN	Osaka	92583
1775	Kameoka	JPN	Kyoto	92398
1776	Mobara	JPN	Chiba	91664
1777	Narita	JPN	Chiba	91470
1778	Kashiwazaki	JPN	Niigata	91229
1779	Tsuyama	JPN	Okayama	91170
1780	Sanaa	YEM	Sanaa	503600
1781	Aden	YEM	Aden	398300
1782	Taizz	YEM	Taizz	317600
1783	Hodeida	YEM	Hodeida	298500
1784	al-Mukalla	YEM	Hadramawt	122400
1785	Ibb	YEM	Ibb	103300
1786	Amman	JOR	Amman	1000000
1787	al-Zarqa	JOR	al-Zarqa	389815
1788	Irbid	JOR	Irbid	231511
1789	al-Rusayfa	JOR	al-Zarqa	137247
1790	Wadi al-Sir	JOR	Amman	89104
1791	Flying Fish Cove	CXR	A	700
1792	Beograd	YUG	Central Serbia	1204000
1793	Novi Sad	YUG	Vojvodina	179626
1794	Nid	YUG	Central Serbia	175391
1795	Pridtina	YUG	Kosovo and Metohija	155496
1796	Kragujevac	YUG	Central Serbia	147305
1797	Podgorica	YUG	Montenegro	135000
1798	Subotica	YUG	Vojvodina	100386
1799	Prizren	YUG	Kosovo and Metohija	92303
1800	Phnom Penh	KHM	Phnom Penh	570155
1801	Battambang	KHM	Battambang	129800
1802	Siem Reap	KHM	Siem Reap	105100
1803	Douala	CMR	Littoral	1448300
1804	Yaounde	CMR	Centre	1372800
1805	Garoua	CMR	Nord	177000
1806	Maroua	CMR	Extreme-Nord	143000
1807	Bamenda	CMR	Nord-Ouest	138000
1808	Bafoussam	CMR	Ouest	131000
1809	Nkongsamba	CMR	Littoral	112454
1810	Montreal	CAN	Quebec	1016376
1811	Calgary	CAN	Alberta	768082
1812	Toronto	CAN	Ontario	688275
1813	North York	CAN	Ontario	622632
1814	Winnipeg	CAN	Manitoba	618477
1815	Edmonton	CAN	Alberta	616306
1816	Mississauga	CAN	Ontario	608072
1817	Scarborough	CAN	Ontario	594501
1818	Vancouver	CAN	British Colombia	514008
1819	Etobicoke	CAN	Ontario	348845
1820	London	CAN	Ontario	339917
1821	Hamilton	CAN	Ontario	335614
1822	Ottawa	CAN	Ontario	335277
1823	Laval	CAN	Quebec	330393
1824	Surrey	CAN	British Colombia	304477
1825	Brampton	CAN	Ontario	296711
1826	Windsor	CAN	Ontario	207588
1827	Saskatoon	CAN	Saskatchewan	193647
1828	Kitchener	CAN	Ontario	189959
1829	Markham	CAN	Ontario	189098
1830	Regina	CAN	Saskatchewan	180400
1831	Burnaby	CAN	British Colombia	179209
1832	Quebec	CAN	Quebec	167264
1833	York	CAN	Ontario	154980
1834	Richmond	CAN	British Colombia	148867
1835	Vaughan	CAN	Ontario	147889
1836	Burlington	CAN	Ontario	145150
1837	Oshawa	CAN	Ontario	140173
1838	Oakville	CAN	Ontario	139192
1839	Saint Catharines	CAN	Ontario	136216
1840	Longueuil	CAN	Quebec	127977
1841	Richmond Hill	CAN	Ontario	116428
1842	Thunder Bay	CAN	Ontario	115913
1843	Nepean	CAN	Ontario	115100
1844	Cape Breton	CAN	Nova Scotia	114733
1845	East York	CAN	Ontario	114034
1846	Halifax	CAN	Nova Scotia	113910
1847	Cambridge	CAN	Ontario	109186
1848	Gloucester	CAN	Ontario	107314
1849	Abbotsford	CAN	British Colombia	105403
1850	Guelph	CAN	Ontario	103593
1851	Saint Johns	CAN	Newfoundland	101936
1852	Coquitlam	CAN	British Colombia	101820
1853	Saanich	CAN	British Colombia	101388
1854	Gatineau	CAN	Quebec	100702
1855	Delta	CAN	British Colombia	95411
1856	Sudbury	CAN	Ontario	92686
1857	Kelowna	CAN	British Colombia	89442
1858	Barrie	CAN	Ontario	89269
1859	Praia	CPV	Sao Tiago	94800
1860	Almaty	KAZ	Almaty Qalasy	1129400
1861	Qaraghandy	KAZ	Qaraghandy	436900
1862	Shymkent	KAZ	South Kazakstan	360100
1863	Taraz	KAZ	Taraz	330100
1864	Astana	KAZ	Astana	311200
1865	Oskemen	KAZ	East Kazakstan	311000
1866	Pavlodar	KAZ	Pavlodar	300500
1867	Semey	KAZ	East Kazakstan	269600
1868	Aqtobe	KAZ	Aqtobe	253100
1869	Qostanay	KAZ	Qostanay	221400
1870	Petropavl	KAZ	North Kazakstan	203500
1871	Oral	KAZ	West Kazakstan	195500
1872	Temirtau	KAZ	Qaraghandy	170500
1873	Qyzylorda	KAZ	Qyzylorda	157400
1874	Aqtau	KAZ	Mangghystau	143400
1875	Atyrau	KAZ	Atyrau	142500
1876	Ekibastuz	KAZ	Pavlodar	127200
1877	Kokshetau	KAZ	North Kazakstan	123400
1878	Rudnyy	KAZ	Qostanay	109500
1879	Taldyqorghan	KAZ	Almaty	98000
1880	Zhezqazghan	KAZ	Qaraghandy	90000
1881	Nairobi	KEN	Nairobi	2290000
1882	Mombasa	KEN	Coast	461753
1883	Kisumu	KEN	Nyanza	192733
1884	Nakuru	KEN	Rift Valley	163927
1885	Machakos	KEN	Eastern	116293
1886	Eldoret	KEN	Rift Valley	111882
1887	Meru	KEN	Eastern	94947
1888	Nyeri	KEN	Central	91258
1889	Bangui	CAF	Bangui	524000
1890	Shanghai	CHN	Shanghai	9696300
1891	Peking	CHN	Peking	7472000
1892	Chongqing	CHN	Chongqing	6351600
1893	Tianjin	CHN	Tianjin	5286800
1894	Wuhan	CHN	Hubei	4344600
1895	Harbin	CHN	Heilongjiang	4289800
1896	Shenyang	CHN	Liaoning	4265200
1897	Kanton [Guangzhou]	CHN	Guangdong	4256300
1898	Chengdu	CHN	Sichuan	3361500
1899	Nanking [Nanjing]	CHN	Jiangsu	2870300
1900	Changchun	CHN	Jilin	2812000
1901	Xian	CHN	Shaanxi	2761400
1902	Dalian	CHN	Liaoning	2697000
1903	Qingdao	CHN	Shandong	2596000
1904	Jinan	CHN	Shandong	2278100
1905	Hangzhou	CHN	Zhejiang	2190500
1906	Zhengzhou	CHN	Henan	2107200
1907	Shijiazhuang	CHN	Hebei	2041500
1908	Taiyuan	CHN	Shanxi	1968400
1909	Kunming	CHN	Yunnan	1829500
1910	Changsha	CHN	Hunan	1809800
1911	Nanchang	CHN	Jiangxi	1691600
1912	Fuzhou	CHN	Fujian	1593800
1913	Lanzhou	CHN	Gansu	1565800
1914	Guiyang	CHN	Guizhou	1465200
1915	Ningbo	CHN	Zhejiang	1371200
1916	Hefei	CHN	Anhui	1369100
1917	Urumtdi [Urumqi]	CHN	Xinxiang	1310100
1918	Anshan	CHN	Liaoning	1200000
1919	Fushun	CHN	Liaoning	1200000
1920	Nanning	CHN	Guangxi	1161800
1921	Zibo	CHN	Shandong	1140000
1922	Qiqihar	CHN	Heilongjiang	1070000
1923	Jilin	CHN	Jilin	1040000
1924	Tangshan	CHN	Hebei	1040000
1925	Baotou	CHN	Inner Mongolia	980000
1926	Shenzhen	CHN	Guangdong	950500
1927	Hohhot	CHN	Inner Mongolia	916700
1928	Handan	CHN	Hebei	840000
1929	Wuxi	CHN	Jiangsu	830000
1930	Xuzhou	CHN	Jiangsu	810000
1931	Datong	CHN	Shanxi	800000
1932	Yichun	CHN	Heilongjiang	800000
1933	Benxi	CHN	Liaoning	770000
1934	Luoyang	CHN	Henan	760000
1935	Suzhou	CHN	Jiangsu	710000
1936	Xining	CHN	Qinghai	700200
1937	Huainan	CHN	Anhui	700000
1938	Jixi	CHN	Heilongjiang	683885
1939	Daqing	CHN	Heilongjiang	660000
1940	Fuxin	CHN	Liaoning	640000
1941	Amoy [Xiamen]	CHN	Fujian	627500
1942	Liuzhou	CHN	Guangxi	610000
1943	Shantou	CHN	Guangdong	580000
1944	Jinzhou	CHN	Liaoning	570000
1945	Mudanjiang	CHN	Heilongjiang	570000
1946	Yinchuan	CHN	Ningxia	544500
1947	Changzhou	CHN	Jiangsu	530000
1948	Zhangjiakou	CHN	Hebei	530000
1949	Dandong	CHN	Liaoning	520000
1950	Hegang	CHN	Heilongjiang	520000
1951	Kaifeng	CHN	Henan	510000
1952	Jiamusi	CHN	Heilongjiang	493409
1953	Liaoyang	CHN	Liaoning	492559
1954	Hengyang	CHN	Hunan	487148
1955	Baoding	CHN	Hebei	483155
1956	Hunjiang	CHN	Jilin	482043
1957	Xinxiang	CHN	Henan	473762
1958	Huangshi	CHN	Hubei	457601
1959	Haikou	CHN	Hainan	454300
1960	Yantai	CHN	Shandong	452127
1961	Bengbu	CHN	Anhui	449245
1962	Xiangtan	CHN	Hunan	441968
1963	Weifang	CHN	Shandong	428522
1964	Wuhu	CHN	Anhui	425740
1965	Pingxiang	CHN	Jiangxi	425579
1966	Yingkou	CHN	Liaoning	421589
1967	Anyang	CHN	Henan	420332
1968	Panzhihua	CHN	Sichuan	415466
1969	Pingdingshan	CHN	Henan	410775
1970	Xiangfan	CHN	Hubei	410407
1971	Zhuzhou	CHN	Hunan	409924
1972	Jiaozuo	CHN	Henan	409100
1973	Wenzhou	CHN	Zhejiang	401871
1974	Zhangjiang	CHN	Guangdong	400997
1975	Zigong	CHN	Sichuan	393184
1976	Shuangyashan	CHN	Heilongjiang	386081
1977	Zaozhuang	CHN	Shandong	380846
1978	Yakeshi	CHN	Inner Mongolia	377869
1979	Yichang	CHN	Hubei	371601
1980	Zhenjiang	CHN	Jiangsu	368316
1981	Huaibei	CHN	Anhui	366549
1982	Qinhuangdao	CHN	Hebei	364972
1983	Guilin	CHN	Guangxi	364130
1984	Liupanshui	CHN	Guizhou	363954
1985	Panjin	CHN	Liaoning	362773
1986	Yangquan	CHN	Shanxi	362268
1987	Jinxi	CHN	Liaoning	357052
1988	Liaoyuan	CHN	Jilin	354141
1989	Lianyungang	CHN	Jiangsu	354139
1990	Xianyang	CHN	Shaanxi	352125
1991	Taian	CHN	Shandong	350696
1992	Chifeng	CHN	Inner Mongolia	350077
1993	Shaoguan	CHN	Guangdong	350043
1994	Nantong	CHN	Jiangsu	343341
1995	Leshan	CHN	Sichuan	341128
1996	Baoji	CHN	Shaanxi	337765
1997	Linyi	CHN	Shandong	324720
1998	Tonghua	CHN	Jilin	324600
1999	Siping	CHN	Jilin	317223
2000	Changzhi	CHN	Shanxi	317144
2001	Tengzhou	CHN	Shandong	315083
2002	Chaozhou	CHN	Guangdong	313469
2003	Yangzhou	CHN	Jiangsu	312892
2004	Dongwan	CHN	Guangdong	308669
2005	Maanshan	CHN	Anhui	305421
2006	Foshan	CHN	Guangdong	303160
2007	Yueyang	CHN	Hunan	302800
2008	Xingtai	CHN	Hebei	302789
2009	Changde	CHN	Hunan	301276
2010	Shihezi	CHN	Xinxiang	299676
2011	Yancheng	CHN	Jiangsu	296831
2012	Jiujiang	CHN	Jiangxi	291187
2013	Dongying	CHN	Shandong	281728
2014	Shashi	CHN	Hubei	281352
2015	Xintai	CHN	Shandong	281248
2016	Jingdezhen	CHN	Jiangxi	281183
2017	Tongchuan	CHN	Shaanxi	280657
2018	Zhongshan	CHN	Guangdong	278829
2019	Shiyan	CHN	Hubei	273786
2020	Tieli	CHN	Heilongjiang	265683
2021	Jining	CHN	Shandong	265248
2022	Wuhai	CHN	Inner Mongolia	264081
2023	Mianyang	CHN	Sichuan	262947
2024	Luzhou	CHN	Sichuan	262892
2025	Zunyi	CHN	Guizhou	261862
2026	Shizuishan	CHN	Ningxia	257862
2027	Neijiang	CHN	Sichuan	256012
2028	Tongliao	CHN	Inner Mongolia	255129
2029	Tieling	CHN	Liaoning	254842
2030	Wafangdian	CHN	Liaoning	251733
2031	Anqing	CHN	Anhui	250718
2032	Shaoyang	CHN	Hunan	247227
2033	Laiwu	CHN	Shandong	246833
2034	Chengde	CHN	Hebei	246799
2035	Tianshui	CHN	Gansu	244974
2036	Nanyang	CHN	Henan	243303
2037	Cangzhou	CHN	Hebei	242708
2038	Yibin	CHN	Sichuan	241019
2039	Huaiyin	CHN	Jiangsu	239675
2040	Dunhua	CHN	Jilin	235100
2041	Yanji	CHN	Jilin	230892
2042	Jiangmen	CHN	Guangdong	230587
2043	Tongling	CHN	Anhui	228017
2044	Suihua	CHN	Heilongjiang	227881
2045	Gongziling	CHN	Jilin	226569
2046	Xiantao	CHN	Hubei	222884
2047	Chaoyang	CHN	Liaoning	222394
2048	Ganzhou	CHN	Jiangxi	220129
2049	Huzhou	CHN	Zhejiang	218071
2050	Baicheng	CHN	Jilin	217987
2051	Shangzi	CHN	Heilongjiang	215373
2052	Yangjiang	CHN	Guangdong	215196
2053	Qitaihe	CHN	Heilongjiang	214957
2054	Gejiu	CHN	Yunnan	214294
2055	Jiangyin	CHN	Jiangsu	213659
2056	Hebi	CHN	Henan	212976
2057	Jiaxing	CHN	Zhejiang	211526
2058	Wuzhou	CHN	Guangxi	210452
2059	Meihekou	CHN	Jilin	209038
2060	Xuchang	CHN	Henan	208815
2061	Liaocheng	CHN	Shandong	207844
2062	Haicheng	CHN	Liaoning	205560
2063	Qianjiang	CHN	Hubei	205504
2064	Baiyin	CHN	Gansu	204970
2065	Beian	CHN	Heilongjiang	204899
2066	Yixing	CHN	Jiangsu	200824
2067	Laizhou	CHN	Shandong	198664
2068	Qaramay	CHN	Xinxiang	197602
2069	Acheng	CHN	Heilongjiang	197595
2070	Dezhou	CHN	Shandong	195485
2071	Nanping	CHN	Fujian	195064
2072	Zhaoqing	CHN	Guangdong	194784
2073	Beipiao	CHN	Liaoning	194301
2074	Fengcheng	CHN	Jiangxi	193784
2075	Fuyu	CHN	Jilin	192981
2076	Xinyang	CHN	Henan	192509
2077	Dongtai	CHN	Jiangsu	192247
2078	Yuci	CHN	Shanxi	191356
2079	Honghu	CHN	Hubei	190772
2080	Ezhou	CHN	Hubei	190123
2081	Heze	CHN	Shandong	189293
2082	Daxian	CHN	Sichuan	188101
2083	Linfen	CHN	Shanxi	187309
2084	Tianmen	CHN	Hubei	186332
2085	Yiyang	CHN	Hunan	185818
2086	Quanzhou	CHN	Fujian	185154
2087	Rizhao	CHN	Shandong	185048
2088	Deyang	CHN	Sichuan	182488
2089	Guangyuan	CHN	Sichuan	182241
2090	Changshu	CHN	Jiangsu	181805
2091	Zhangzhou	CHN	Fujian	181424
2092	Hailar	CHN	Inner Mongolia	180650
2093	Nanchong	CHN	Sichuan	180273
2094	Jiutai	CHN	Jilin	180130
2095	Zhaodong	CHN	Heilongjiang	179976
2096	Shaoxing	CHN	Zhejiang	179818
2097	Fuyang	CHN	Anhui	179572
2098	Maoming	CHN	Guangdong	178683
2099	Qujing	CHN	Yunnan	178669
2100	Ghulja	CHN	Xinxiang	177193
2101	Jiaohe	CHN	Jilin	176367
2102	Puyang	CHN	Henan	175988
2103	Huadian	CHN	Jilin	175873
2104	Jiangyou	CHN	Sichuan	175753
2105	Qashqar	CHN	Xinxiang	174570
2106	Anshun	CHN	Guizhou	174142
2107	Fuling	CHN	Sichuan	173878
2108	Xinyu	CHN	Jiangxi	173524
2109	Hanzhong	CHN	Shaanxi	169930
2110	Danyang	CHN	Jiangsu	169603
2111	Chenzhou	CHN	Hunan	169400
2112	Xiaogan	CHN	Hubei	166280
2113	Shangqiu	CHN	Henan	164880
2114	Zhuhai	CHN	Guangdong	164747
2115	Qingyuan	CHN	Guangdong	164641
2116	Aqsu	CHN	Xinxiang	164092
2117	Jining	CHN	Inner Mongolia	163552
2118	Xiaoshan	CHN	Zhejiang	162930
2119	Zaoyang	CHN	Hubei	162198
2120	Xinghua	CHN	Jiangsu	161910
2121	Hami	CHN	Xinxiang	161315
2122	Huizhou	CHN	Guangdong	161023
2123	Jinmen	CHN	Hubei	160794
2124	Sanming	CHN	Fujian	160691
2125	Ulanhot	CHN	Inner Mongolia	159538
2126	Korla	CHN	Xinxiang	159344
2127	Wanxian	CHN	Sichuan	156823
2128	Ruian	CHN	Zhejiang	156468
2129	Zhoushan	CHN	Zhejiang	156317
2130	Liangcheng	CHN	Shandong	156307
2131	Jiaozhou	CHN	Shandong	153364
2132	Taizhou	CHN	Jiangsu	152442
2133	Suzhou	CHN	Anhui	151862
2134	Yichun	CHN	Jiangxi	151585
2135	Taonan	CHN	Jilin	150168
2136	Pingdu	CHN	Shandong	150123
2137	Jian	CHN	Jiangxi	148583
2138	Longkou	CHN	Shandong	148362
2139	Langfang	CHN	Hebei	148105
2140	Zhoukou	CHN	Henan	146288
2141	Suining	CHN	Sichuan	146086
2142	Yulin	CHN	Guangxi	144467
2143	Jinhua	CHN	Zhejiang	144280
2144	Liuan	CHN	Anhui	144248
2145	Shuangcheng	CHN	Heilongjiang	142659
2146	Suizhou	CHN	Hubei	142302
2147	Ankang	CHN	Shaanxi	142170
2148	Weinan	CHN	Shaanxi	140169
2149	Longjing	CHN	Jilin	139417
2150	Daan	CHN	Jilin	138963
2151	Lengshuijiang	CHN	Hunan	137994
2152	Laiyang	CHN	Shandong	137080
2153	Xianning	CHN	Hubei	136811
2154	Dali	CHN	Yunnan	136554
2155	Anda	CHN	Heilongjiang	136446
2156	Jincheng	CHN	Shanxi	136396
2157	Longyan	CHN	Fujian	134481
2158	Xichang	CHN	Sichuan	134419
2159	Wendeng	CHN	Shandong	133910
2160	Hailun	CHN	Heilongjiang	133565
2161	Binzhou	CHN	Shandong	133555
2162	Linhe	CHN	Inner Mongolia	133183
2163	Wuwei	CHN	Gansu	133101
2164	Duyun	CHN	Guizhou	132971
2165	Mishan	CHN	Heilongjiang	132744
2166	Shangrao	CHN	Jiangxi	132455
2167	Changji	CHN	Xinxiang	132260
2168	Meixian	CHN	Guangdong	132156
2169	Yushu	CHN	Jilin	131861
2170	Tiefa	CHN	Liaoning	131807
2171	Huaian	CHN	Jiangsu	131149
2172	Leiyang	CHN	Hunan	130115
2173	Zalantun	CHN	Inner Mongolia	130031
2174	Weihai	CHN	Shandong	128888
2175	Loudi	CHN	Hunan	128418
2176	Qingzhou	CHN	Shandong	128258
2177	Qidong	CHN	Jiangsu	126872
2178	Huaihua	CHN	Hunan	126785
2179	Luohe	CHN	Henan	126438
2180	Chuzhou	CHN	Anhui	125341
2181	Kaiyuan	CHN	Liaoning	124219
2182	Linqing	CHN	Shandong	123958
2183	Chaohu	CHN	Anhui	123676
2184	Laohekou	CHN	Hubei	123366
2185	Dujiangyan	CHN	Sichuan	123357
2186	Zhumadian	CHN	Henan	123232
2187	Linchuan	CHN	Jiangxi	121949
2188	Jiaonan	CHN	Shandong	121397
2189	Sanmenxia	CHN	Henan	120523
2190	Heyuan	CHN	Guangdong	120101
2191	Manzhouli	CHN	Inner Mongolia	120023
2192	Lhasa	CHN	Tibet	120000
2193	Lianyuan	CHN	Hunan	118858
2194	Kuytun	CHN	Xinxiang	118553
2195	Puqi	CHN	Hubei	117264
2196	Hongjiang	CHN	Hunan	116188
2197	Qinzhou	CHN	Guangxi	114586
2198	Renqiu	CHN	Hebei	114256
2199	Yuyao	CHN	Zhejiang	114065
2200	Guigang	CHN	Guangxi	114025
2201	Kaili	CHN	Guizhou	113958
2202	Yanan	CHN	Shaanxi	113277
2203	Beihai	CHN	Guangxi	112673
2204	Xuangzhou	CHN	Anhui	112673
2205	Quzhou	CHN	Zhejiang	112373
2206	Yongan	CHN	Fujian	111762
2207	Zixing	CHN	Hunan	110048
2208	Liyang	CHN	Jiangsu	109520
2209	Yizheng	CHN	Jiangsu	109268
2210	Yumen	CHN	Gansu	109234
2211	Liling	CHN	Hunan	108504
2212	Yuncheng	CHN	Shanxi	108359
2213	Shanwei	CHN	Guangdong	107847
2214	Cixi	CHN	Zhejiang	107329
2215	Yuanjiang	CHN	Hunan	107004
2216	Bozhou	CHN	Anhui	106346
2217	Jinchang	CHN	Gansu	105287
2218	Fuan	CHN	Fujian	105265
2219	Suqian	CHN	Jiangsu	105021
2220	Shishou	CHN	Hubei	104571
2221	Hengshui	CHN	Hebei	104269
2222	Danjiangkou	CHN	Hubei	103211
2223	Fujin	CHN	Heilongjiang	103104
2224	Sanya	CHN	Hainan	102820
2225	Guangshui	CHN	Hubei	102770
2226	Huangshan	CHN	Anhui	102628
2227	Xingcheng	CHN	Liaoning	102384
2228	Zhucheng	CHN	Shandong	102134
2229	Kunshan	CHN	Jiangsu	102052
2230	Haining	CHN	Zhejiang	100478
2231	Pingliang	CHN	Gansu	99265
2232	Fuqing	CHN	Fujian	99193
2233	Xinzhou	CHN	Shanxi	98667
2234	Jieyang	CHN	Guangdong	98531
2235	Zhangjiagang	CHN	Jiangsu	97994
2236	Tong Xian	CHN	Peking	97168
2237	Yaan	CHN	Sichuan	95900
2238	Jinzhou	CHN	Liaoning	95761
2239	Emeishan	CHN	Sichuan	94000
2240	Enshi	CHN	Hubei	93056
2241	Bose	CHN	Guangxi	93009
2242	Yuzhou	CHN	Henan	92889
2243	Kaiyuan	CHN	Yunnan	91999
2244	Tumen	CHN	Jilin	91471
2245	Putian	CHN	Fujian	91030
2246	Linhai	CHN	Zhejiang	90870
2247	Xilin Hot	CHN	Inner Mongolia	90646
2248	Shaowu	CHN	Fujian	90286
2249	Junan	CHN	Shandong	90222
2250	Huaying	CHN	Sichuan	89400
2251	Pingyi	CHN	Shandong	89373
2252	Huangyan	CHN	Zhejiang	89288
2253	Bishkek	KGZ	Bishkek shaary	589400
2254	Osh	KGZ	Osh	222700
2255	Bikenibeu	KIR	South Tarawa	5055
2256	Bairiki	KIR	South Tarawa	2226
2257	Santafe de Bogota	COL	Santafe de Bogota	6260862
2258	Cali	COL	Valle	2077386
2259	Medellin	COL	Antioquia	1861265
2260	Barranquilla	COL	Atlantico	1223260
2261	Cartagena	COL	Bolivar	805757
2262	Cucuta	COL	Norte de Santander	606932
2263	Bucaramanga	COL	Santander	515555
2264	Ibague	COL	Tolima	393664
2265	Pereira	COL	Risaralda	381725
2266	Santa Marta	COL	Magdalena	359147
2267	Manizales	COL	Caldas	337580
2268	Bello	COL	Antioquia	333470
2269	Pasto	COL	Nariao	332396
2270	Neiva	COL	Huila	300052
2271	Soledad	COL	Atlantico	295058
2272	Armenia	COL	Quindio	288977
2273	Villavicencio	COL	Meta	273140
2274	Soacha	COL	Cundinamarca	272058
2275	Valledupar	COL	Cesar	263247
2276	Monteria	COL	Cordoba	248245
2277	Itagui	COL	Antioquia	228985
2278	Palmira	COL	Valle	226509
2279	Buenaventura	COL	Valle	224336
2280	Floridablanca	COL	Santander	221913
2281	Sincelejo	COL	Sucre	220704
2282	Popayan	COL	Cauca	200719
2283	Barrancabermeja	COL	Santander	178020
2284	Dos Quebradas	COL	Risaralda	159363
2285	Tulua	COL	Valle	152488
2286	Envigado	COL	Antioquia	135848
2287	Cartago	COL	Valle	125884
2288	Girardot	COL	Cundinamarca	110963
2289	Buga	COL	Valle	110699
2290	Tunja	COL	Boyaca	109740
2291	Florencia	COL	Caqueta	108574
2292	Maicao	COL	La Guajira	108053
2293	Sogamoso	COL	Boyaca	107728
2294	Giron	COL	Santander	90688
2295	Moroni	COM	Njazidja	36000
2296	Brazzaville	COG	Brazzaville	950000
2297	Pointe-Noire	COG	Kouilou	500000
2298	Kinshasa	COD	Kinshasa	5064000
2299	Lubumbashi	COD	Shaba	851381
2300	Mbuji-Mayi	COD	East Kasai	806475
2301	Kolwezi	COD	Shaba	417810
2302	Kisangani	COD	Haute-Zaire	417517
2303	Kananga	COD	West Kasai	393030
2304	Likasi	COD	Shaba	299118
2305	Bukavu	COD	South Kivu	201569
2306	Kikwit	COD	Bandundu	182142
2307	Tshikapa	COD	West Kasai	180860
2308	Matadi	COD	Bas-Zaire	172730
2309	Mbandaka	COD	Equateur	169841
2310	Mwene-Ditu	COD	East Kasai	137459
2311	Boma	COD	Bas-Zaire	135284
2312	Uvira	COD	South Kivu	115590
2313	Butembo	COD	North Kivu	109406
2314	Goma	COD	North Kivu	109094
2315	Kalemie	COD	Shaba	101309
2316	Bantam	CCK	Home Island	503
2317	West Island	CCK	West Island	167
2318	Pyongyang	PRK	Pyongyang-si	2484000
2319	Hamhung	PRK	Hamgyong N	709730
2320	Chongjin	PRK	Hamgyong P	582480
2321	Nampo	PRK	Nampo-si	566200
2322	Sinuiju	PRK	Pyongan P	326011
2323	Wonsan	PRK	Kangwon	300148
2324	Phyongsong	PRK	Pyongan N	272934
2325	Sariwon	PRK	Hwanghae P	254146
2326	Haeju	PRK	Hwanghae N	229172
2327	Kanggye	PRK	Chagang	223410
2328	Kimchaek	PRK	Hamgyong P	179000
2329	Hyesan	PRK	Yanggang	178020
2330	Kaesong	PRK	Kaesong-si	171500
2331	Seoul	KOR	Seoul	9981619
2332	Pusan	KOR	Pusan	3804522
2333	Inchon	KOR	Inchon	2559424
2334	Taegu	KOR	Taegu	2548568
2335	Taejon	KOR	Taejon	1425835
2336	Kwangju	KOR	Kwangju	1368341
2337	Ulsan	KOR	Kyongsangnam	1084891
2338	Songnam	KOR	Kyonggi	869094
2339	Puchon	KOR	Kyonggi	779412
2340	Suwon	KOR	Kyonggi	755550
2341	Anyang	KOR	Kyonggi	591106
2342	Chonju	KOR	Chollabuk	563153
2343	Chongju	KOR	Chungchongbuk	531376
2344	Koyang	KOR	Kyonggi	518282
2345	Ansan	KOR	Kyonggi	510314
2346	Pohang	KOR	Kyongsangbuk	508899
2347	Chang-won	KOR	Kyongsangnam	481694
2348	Masan	KOR	Kyongsangnam	441242
2349	Kwangmyong	KOR	Kyonggi	350914
2350	Chonan	KOR	Chungchongnam	330259
2351	Chinju	KOR	Kyongsangnam	329886
2352	Iksan	KOR	Chollabuk	322685
2353	Pyongtaek	KOR	Kyonggi	312927
2354	Kumi	KOR	Kyongsangbuk	311431
2355	Uijongbu	KOR	Kyonggi	276111
2356	Kyongju	KOR	Kyongsangbuk	272968
2357	Kunsan	KOR	Chollabuk	266569
2358	Cheju	KOR	Cheju	258511
2359	Kimhae	KOR	Kyongsangnam	256370
2360	Sunchon	KOR	Chollanam	249263
2361	Mokpo	KOR	Chollanam	247452
2362	Yong-in	KOR	Kyonggi	242643
2363	Wonju	KOR	Kang-won	237460
2364	Kunpo	KOR	Kyonggi	235233
2365	Chunchon	KOR	Kang-won	234528
2366	Namyangju	KOR	Kyonggi	229060
2367	Kangnung	KOR	Kang-won	220403
2368	Chungju	KOR	Chungchongbuk	205206
2369	Andong	KOR	Kyongsangbuk	188443
2370	Yosu	KOR	Chollanam	183596
2371	Kyongsan	KOR	Kyongsangbuk	173746
2372	Paju	KOR	Kyonggi	163379
2373	Yangsan	KOR	Kyongsangnam	163351
2374	Ichon	KOR	Kyonggi	155332
2375	Asan	KOR	Chungchongnam	154663
2376	Koje	KOR	Kyongsangnam	147562
2377	Kimchon	KOR	Kyongsangbuk	147027
2378	Nonsan	KOR	Chungchongnam	146619
2379	Kuri	KOR	Kyonggi	142173
2380	Chong-up	KOR	Chollabuk	139111
2381	Chechon	KOR	Chungchongbuk	137070
2382	Sosan	KOR	Chungchongnam	134746
2383	Shihung	KOR	Kyonggi	133443
2384	Tong-yong	KOR	Kyongsangnam	131717
2385	Kongju	KOR	Chungchongnam	131229
2386	Yongju	KOR	Kyongsangbuk	131097
2387	Chinhae	KOR	Kyongsangnam	125997
2388	Sangju	KOR	Kyongsangbuk	124116
2389	Poryong	KOR	Chungchongnam	122604
2390	Kwang-yang	KOR	Chollanam	122052
2391	Miryang	KOR	Kyongsangnam	121501
2392	Hanam	KOR	Kyonggi	115812
2393	Kimje	KOR	Chollabuk	115427
2394	Yongchon	KOR	Kyongsangbuk	113511
2395	Sachon	KOR	Kyongsangnam	113494
2396	Uiwang	KOR	Kyonggi	108788
2397	Naju	KOR	Chollanam	107831
2398	Namwon	KOR	Chollabuk	103544
2399	Tonghae	KOR	Kang-won	95472
2400	Mun-gyong	KOR	Kyongsangbuk	92239
2401	Athenai	GRC	Attika	772072
2402	Thessaloniki	GRC	Central Macedonia	383967
2403	Pireus	GRC	Attika	182671
2404	Patras	GRC	West Greece	153344
2405	Peristerion	GRC	Attika	137288
2406	Herakleion	GRC	Crete	116178
2407	Kallithea	GRC	Attika	114233
2408	Larisa	GRC	Thessalia	113090
2409	Zagreb	HRV	Grad Zagreb	706770
2410	Split	HRV	Split-Dalmatia	189388
2411	Rijeka	HRV	Primorje-Gorski Kota	167964
2412	Osijek	HRV	Osijek-Baranja	104761
2413	La Habana	CUB	La Habana	2256000
2414	Santiago de Cuba	CUB	Santiago de Cuba	433180
2415	Camaguey	CUB	Camaguey	298726
2416	Holguin	CUB	Holguin	249492
2417	Santa Clara	CUB	Villa Clara	207350
2418	Guantanamo	CUB	Guantanamo	205078
2419	Pinar del Rio	CUB	Pinar del Rio	142100
2420	Bayamo	CUB	Granma	141000
2421	Cienfuegos	CUB	Cienfuegos	132770
2422	Victoria de las Tunas	CUB	Las Tunas	132350
2423	Matanzas	CUB	Matanzas	123273
2424	Manzanillo	CUB	Granma	109350
2425	Sancti-Spiritus	CUB	Sancti-Spiritus	100751
2426	Ciego de Avila	CUB	Ciego de Avila	98505
2427	al-Salimiya	KWT	Hawalli	130215
2428	Jalib al-Shuyukh	KWT	Hawalli	102178
2429	Kuwait	KWT	al-Asima	28859
2430	Nicosia	CYP	Nicosia	195000
2431	Limassol	CYP	Limassol	154400
2432	Vientiane	LAO	Viangchan	531800
2433	Savannakhet	LAO	Savannakhet	96652
2434	Riga	LVA	Riika	764328
2435	Daugavpils	LVA	Daugavpils	114829
2436	Liepaja	LVA	Liepaja	89439
2437	Maseru	LSO	Maseru	297000
2438	Beirut	LBN	Beirut	1100000
2439	Tripoli	LBN	al-Shamal	240000
2440	Monrovia	LBR	Montserrado	850000
2441	Tripoli	LBY	Tripoli	1682000
2442	Bengasi	LBY	Bengasi	804000
2443	Misrata	LBY	Misrata	121669
2444	al-Zawiya	LBY	al-Zawiya	89338
2445	Schaan	LIE	Schaan	5346
2446	Vaduz	LIE	Vaduz	5043
2447	Vilnius	LTU	Vilna	577969
2448	Kaunas	LTU	Kaunas	412639
2449	Klaipeda	LTU	Klaipeda	202451
2450	Giauliai	LTU	Giauliai	146563
2451	Panevezys	LTU	Panevezys	133695
2452	Luxembourg [Luxemburg/Letzebuerg]	LUX	Luxembourg	80700
2453	El-Aaiun	ESH	El-Aaiun	169000
2454	Macao	MAC	Macau	437500
2455	Antananarivo	MDG	Antananarivo	675669
2456	Toamasina	MDG	Toamasina	127441
2457	Antsirabe	MDG	Antananarivo	120239
2458	Mahajanga	MDG	Mahajanga	100807
2459	Fianarantsoa	MDG	Fianarantsoa	99005
2460	Skopje	MKD	Skopje	444299
2461	Blantyre	MWI	Blantyre	478155
2462	Lilongwe	MWI	Lilongwe	435964
2463	Male	MDV	Maale	71000
2464	Kuala Lumpur	MYS	Wilayah Persekutuan	1297526
2465	Ipoh	MYS	Perak	382853
2466	Johor Baharu	MYS	Johor	328436
2467	Petaling Jaya	MYS	Selangor	254350
2468	Kelang	MYS	Selangor	243355
2469	Kuala Terengganu	MYS	Terengganu	228119
2470	Pinang	MYS	Pulau Pinang	219603
2471	Kota Bharu	MYS	Kelantan	219582
2472	Kuantan	MYS	Pahang	199484
2473	Taiping	MYS	Perak	183261
2474	Seremban	MYS	Negeri Sembilan	182869
2475	Kuching	MYS	Sarawak	148059
2476	Sibu	MYS	Sarawak	126381
2477	Sandakan	MYS	Sabah	125841
2478	Alor Setar	MYS	Kedah	124412
2479	Selayang Baru	MYS	Selangor	124228
2480	Sungai Petani	MYS	Kedah	114763
2481	Shah Alam	MYS	Selangor	102019
2482	Bamako	MLI	Bamako	809552
2483	Birkirkara	MLT	Outer Harbour	21445
2484	Valletta	MLT	Inner Harbour	7073
2485	Casablanca	MAR	Casablanca	2940623
2486	Rabat	MAR	Rabat-Sale-Zammour-Z	623457
2487	Marrakech	MAR	Marrakech-Tensift-Al	621914
2488	Fes	MAR	Fes-Boulemane	541162
2489	Tanger	MAR	Tanger-Tetouan	521735
2490	Sale	MAR	Rabat-Sale-Zammour-Z	504420
2491	Meknes	MAR	Meknes-Tafilalet	460000
2492	Oujda	MAR	Oriental	365382
2493	Kenitra	MAR	Gharb-Chrarda-Beni H	292600
2494	Tetouan	MAR	Tanger-Tetouan	277516
2495	Safi	MAR	Doukkala-Abda	262300
2496	Agadir	MAR	Souss Massa-Draa	155244
2497	Mohammedia	MAR	Casablanca	154706
2498	Khouribga	MAR	Chaouia-Ouardigha	152090
2499	Beni-Mellal	MAR	Tadla-Azilal	140212
2500	Temara	MAR	Rabat-Sale-Zammour-Z	126303
2501	El Jadida	MAR	Doukkala-Abda	119083
2502	Nador	MAR	Oriental	112450
2503	Ksar el Kebir	MAR	Tanger-Tetouan	107065
2504	Settat	MAR	Chaouia-Ouardigha	96200
2505	Taza	MAR	Taza-Al Hoceima-Taou	92700
2506	El Araich	MAR	Tanger-Tetouan	90400
2507	Dalap-Uliga-Darrit	MHL	Majuro	28000
2508	Fort-de-France	MTQ	Fort-de-France	94050
2509	Nouakchott	MRT	Nouakchott	667300
2510	Nouadhibou	MRT	Dakhlet Nouadhibou	97600
2511	Port-Louis	MUS	Port-Louis	138200
2512	Beau Bassin-Rose Hill	MUS	Plaines Wilhelms	100616
2513	Vacoas-Phoenix	MUS	Plaines Wilhelms	98464
2514	Mamoutzou	MYT	Mamoutzou	12000
2515	Ciudad de Mexico	MEX	Distrito Federal	8591309
2516	Guadalajara	MEX	Jalisco	1647720
2517	Ecatepec de Morelos	MEX	Mexico	1620303
2518	Puebla	MEX	Puebla	1346176
2519	Nezahualcoyotl	MEX	Mexico	1224924
2520	Juarez	MEX	Chihuahua	1217818
2521	Tijuana	MEX	Baja California	1212232
2522	Leon	MEX	Guanajuato	1133576
2523	Monterrey	MEX	Nuevo Leon	1108499
2524	Zapopan	MEX	Jalisco	1002239
2525	Naucalpan de Juarez	MEX	Mexico	857511
2526	Mexicali	MEX	Baja California	764902
2527	Culiacan	MEX	Sinaloa	744859
2528	Acapulco de Juarez	MEX	Guerrero	721011
2529	Tlalnepantla de Baz	MEX	Mexico	720755
2530	Merida	MEX	Yucatan	703324
2531	Chihuahua	MEX	Chihuahua	670208
2532	San Luis Potosi	MEX	San Luis Potosi	669353
2533	Guadalupe	MEX	Nuevo Leon	668780
2534	Toluca	MEX	Mexico	665617
2535	Aguascalientes	MEX	Aguascalientes	643360
2536	Queretaro	MEX	Queretaro de Arteaga	639839
2537	Morelia	MEX	Michoacan de Ocampo	619958
2538	Hermosillo	MEX	Sonora	608697
2539	Saltillo	MEX	Coahuila de Zaragoza	577352
2540	Torreon	MEX	Coahuila de Zaragoza	529093
2541	Centro (Villahermosa)	MEX	Tabasco	519873
2542	San Nicolas de los Garza	MEX	Nuevo Leon	495540
2543	Durango	MEX	Durango	490524
2544	Chimalhuacan	MEX	Mexico	490245
2545	Tlaquepaque	MEX	Jalisco	475472
2546	Atizapan de Zaragoza	MEX	Mexico	467262
2547	Veracruz	MEX	Veracruz	457119
2548	Cuautitlan Izcalli	MEX	Mexico	452976
2549	Irapuato	MEX	Guanajuato	440039
2550	Tuxtla Gutierrez	MEX	Chiapas	433544
2551	Tultitlan	MEX	Mexico	432411
2552	Reynosa	MEX	Tamaulipas	419776
2553	Benito Juarez	MEX	Quintana Roo	419276
2554	Matamoros	MEX	Tamaulipas	416428
2555	Xalapa	MEX	Veracruz	390058
2556	Celaya	MEX	Guanajuato	382140
2557	Mazatlan	MEX	Sinaloa	380265
2558	Ensenada	MEX	Baja California	369573
2559	Ahome	MEX	Sinaloa	358663
2560	Cajeme	MEX	Sonora	355679
2561	Cuernavaca	MEX	Morelos	337966
2562	Tonala	MEX	Jalisco	336109
2563	Valle de Chalco Solidaridad	MEX	Mexico	323113
2564	Nuevo Laredo	MEX	Tamaulipas	310277
2565	Tepic	MEX	Nayarit	305025
2566	Tampico	MEX	Tamaulipas	294789
2567	Ixtapaluca	MEX	Mexico	293160
2568	Apodaca	MEX	Nuevo Leon	282941
2569	Guasave	MEX	Sinaloa	277201
2570	Gomez Palacio	MEX	Durango	272806
2571	Tapachula	MEX	Chiapas	271141
2572	Nicolas Romero	MEX	Mexico	269393
2573	Coatzacoalcos	MEX	Veracruz	267037
2574	Uruapan	MEX	Michoacan de Ocampo	265211
2575	Victoria	MEX	Tamaulipas	262686
2576	Oaxaca de Juarez	MEX	Oaxaca	256848
2577	Coacalco de Berriozabal	MEX	Mexico	252270
2578	Pachuca de Soto	MEX	Hidalgo	244688
2579	General Escobedo	MEX	Nuevo Leon	232961
2580	Salamanca	MEX	Guanajuato	226864
2581	Santa Catarina	MEX	Nuevo Leon	226573
2582	Tehuacan	MEX	Puebla	225943
2583	Chalco	MEX	Mexico	222201
2584	Cardenas	MEX	Tabasco	216903
2585	Campeche	MEX	Campeche	216735
2586	La Paz	MEX	Mexico	213045
2587	Othon P. Blanco (Chetumal)	MEX	Quintana Roo	208014
2588	Texcoco	MEX	Mexico	203681
2589	La Paz	MEX	Baja California Sur	196708
2590	Metepec	MEX	Mexico	194265
2591	Monclova	MEX	Coahuila de Zaragoza	193657
2592	Huixquilucan	MEX	Mexico	193156
2593	Chilpancingo de los Bravo	MEX	Guerrero	192509
2594	Puerto Vallarta	MEX	Jalisco	183741
2595	Fresnillo	MEX	Zacatecas	182744
2596	Ciudad Madero	MEX	Tamaulipas	182012
2597	Soledad de Graciano Sanchez	MEX	San Luis Potosi	179956
2598	San Juan del Rio	MEX	Queretaro	179300
2599	San Felipe del Progreso	MEX	Mexico	177330
2600	Cordoba	MEX	Veracruz	176952
2601	Tecamac	MEX	Mexico	172410
2602	Ocosingo	MEX	Chiapas	171495
2603	Carmen	MEX	Campeche	171367
2604	Lazaro Cardenas	MEX	Michoacan de Ocampo	170878
2605	Jiutepec	MEX	Morelos	170428
2606	Papantla	MEX	Veracruz	170123
2607	Comalcalco	MEX	Tabasco	164640
2608	Zamora	MEX	Michoacan de Ocampo	161191
2609	Nogales	MEX	Sonora	159103
2610	Huimanguillo	MEX	Tabasco	158335
2611	Cuautla	MEX	Morelos	153132
2612	Minatitlan	MEX	Veracruz	152983
2613	Poza Rica de Hidalgo	MEX	Veracruz	152678
2614	Ciudad Valles	MEX	San Luis Potosi	146411
2615	Navolato	MEX	Sinaloa	145396
2616	San Luis Rio Colorado	MEX	Sonora	145276
2617	Penjamo	MEX	Guanajuato	143927
2618	San Andres Tuxtla	MEX	Veracruz	142251
2619	Guanajuato	MEX	Guanajuato	141215
2620	Navojoa	MEX	Sonora	140495
2621	Zitacuaro	MEX	Michoacan de Ocampo	137970
2622	Boca del Rio	MEX	Veracruz-Llave	135721
2623	Allende	MEX	Guanajuato	134645
2624	Silao	MEX	Guanajuato	134037
2625	Macuspana	MEX	Tabasco	133795
2626	San Juan Bautista Tuxtepec	MEX	Oaxaca	133675
2627	San Cristobal de las Casas	MEX	Chiapas	132317
2628	Valle de Santiago	MEX	Guanajuato	130557
2629	Guaymas	MEX	Sonora	130108
2630	Colima	MEX	Colima	129454
2631	Dolores Hidalgo	MEX	Guanajuato	128675
2632	Lagos de Moreno	MEX	Jalisco	127949
2633	Piedras Negras	MEX	Coahuila de Zaragoza	127898
2634	Altamira	MEX	Tamaulipas	127490
2635	Tuxpam	MEX	Veracruz	126475
2636	San Pedro Garza Garcia	MEX	Nuevo Leon	126147
2637	Cuauhtemoc	MEX	Chihuahua	124279
2638	Manzanillo	MEX	Colima	124014
2639	Iguala de la Independencia	MEX	Guerrero	123883
2640	Zacatecas	MEX	Zacatecas	123700
2641	Tlajomulco de Zuaiga	MEX	Jalisco	123220
2642	Tulancingo de Bravo	MEX	Hidalgo	121946
2643	Zinacantepec	MEX	Mexico	121715
2644	San Martin Texmelucan	MEX	Puebla	121093
2645	Tepatitlan de Morelos	MEX	Jalisco	118948
2646	Martinez de la Torre	MEX	Veracruz	118815
2647	Orizaba	MEX	Veracruz	118488
2648	Apatzingan	MEX	Michoacan de Ocampo	117849
2649	Atlixco	MEX	Puebla	117019
2650	Delicias	MEX	Chihuahua	116132
2651	Ixtlahuaca	MEX	Mexico	115548
2652	El Mante	MEX	Tamaulipas	112453
2653	Lerdo	MEX	Durango	112272
2654	Almoloya de Juarez	MEX	Mexico	110550
2655	Acambaro	MEX	Guanajuato	110487
2656	Acuaa	MEX	Coahuila de Zaragoza	110388
2657	Guadalupe	MEX	Zacatecas	108881
2658	Huejutla de Reyes	MEX	Hidalgo	108017
2659	Hidalgo	MEX	Michoacan de Ocampo	106198
2660	Los Cabos	MEX	Baja California Sur	105199
2661	Comitan de Dominguez	MEX	Chiapas	104986
2662	Cunduacan	MEX	Tabasco	104164
2663	Rio Bravo	MEX	Tamaulipas	103901
2664	Temapache	MEX	Veracruz	102824
2665	Chilapa de Alvarez	MEX	Guerrero	102716
2666	Hidalgo del Parral	MEX	Chihuahua	100881
2667	San Francisco del Rincon	MEX	Guanajuato	100149
2668	Taxco de Alarcon	MEX	Guerrero	99907
2669	Zumpango	MEX	Mexico	99781
2670	San Pedro Cholula	MEX	Puebla	99734
2671	Lerma	MEX	Mexico	99714
2672	Tecoman	MEX	Colima	99296
2673	Las Margaritas	MEX	Chiapas	97389
2674	Cosoleacaque	MEX	Veracruz	97199
2675	San Luis de la Paz	MEX	Guanajuato	96763
2676	Jose Azueta	MEX	Guerrero	95448
2677	Santiago Ixcuintla	MEX	Nayarit	95311
2678	San Felipe	MEX	Guanajuato	95305
2679	Tejupilco	MEX	Mexico	94934
2680	Tantoyuca	MEX	Veracruz	94709
2681	Salvatierra	MEX	Guanajuato	94322
2682	Tultepec	MEX	Mexico	93364
2683	Temixco	MEX	Morelos	92686
2684	Matamoros	MEX	Coahuila de Zaragoza	91858
2685	Panuco	MEX	Veracruz	90551
2686	El Fuerte	MEX	Sinaloa	89556
2687	Tierra Blanca	MEX	Veracruz	89143
2688	Weno	FSM	Chuuk	22000
2689	Palikir	FSM	Pohnpei	8600
2690	Chisinau	MDA	Chisinau	719900
2691	Tiraspol	MDA	Dnjestria	194300
2692	Balti	MDA	Balti	153400
2693	Bender (Tighina)	MDA	Bender (Tighina)	125700
2694	Monte-Carlo	MCO	A	13154
2695	Monaco-Ville	MCO	A	1234
2696	Ulan Bator	MNG	Ulaanbaatar	773700
2697	Plymouth	MSR	Plymouth	2000
2698	Maputo	MOZ	Maputo	1018938
2699	Matola	MOZ	Maputo	424662
2700	Beira	MOZ	Sofala	397368
2701	Nampula	MOZ	Nampula	303346
2702	Chimoio	MOZ	Manica	171056
2703	Nacala-Porto	MOZ	Nampula	158248
2704	Quelimane	MOZ	Zambezia	150116
2705	Mocuba	MOZ	Zambezia	124700
2706	Tete	MOZ	Tete	101984
2707	Xai-Xai	MOZ	Gaza	99442
2708	Gurue	MOZ	Zambezia	99300
2709	Maxixe	MOZ	Inhambane	93985
2710	Rangoon (Yangon)	MMR	Rangoon [Yangon]	3361700
2711	Mandalay	MMR	Mandalay	885300
2712	Moulmein (Mawlamyine)	MMR	Mon	307900
2713	Pegu (Bago)	MMR	Pegu [Bago]	190900
2714	Bassein (Pathein)	MMR	Irrawaddy [Ayeyarwad	183900
2715	Monywa	MMR	Sagaing	138600
2716	Sittwe (Akyab)	MMR	Rakhine	137600
2717	Taunggyi (Taunggye)	MMR	Shan	131500
2718	Meikhtila	MMR	Mandalay	129700
2719	Mergui (Myeik)	MMR	Tenasserim [Tanintha	122700
2720	Lashio (Lasho)	MMR	Shan	107600
2721	Prome (Pyay)	MMR	Pegu [Bago]	105700
2722	Henzada (Hinthada)	MMR	Irrawaddy [Ayeyarwad	104700
2723	Myingyan	MMR	Mandalay	103600
2724	Tavoy (Dawei)	MMR	Tenasserim [Tanintha	96800
2725	Pagakku (Pakokku)	MMR	Magwe [Magway]	94800
2726	Windhoek	NAM	Khomas	169000
2727	Yangor	NRU	A	4050
2728	Yaren	NRU	A	559
2729	Kathmandu	NPL	Central	591835
2730	Biratnagar	NPL	Eastern	157764
2731	Pokhara	NPL	Western	146318
2732	Lalitapur	NPL	Central	145847
2733	Birgunj	NPL	Central	90639
2734	Managua	NIC	Managua	959000
2735	Leon	NIC	Leon	123865
2736	Chinandega	NIC	Chinandega	97387
2737	Masaya	NIC	Masaya	88971
2738	Niamey	NER	Niamey	420000
2739	Zinder	NER	Zinder	120892
2740	Maradi	NER	Maradi	112965
2741	Lagos	NGA	Lagos	1518000
2742	Ibadan	NGA	Oyo & Osun	1432000
2743	Ogbomosho	NGA	Oyo & Osun	730000
2744	Kano	NGA	Kano & Jigawa	674100
2745	Oshogbo	NGA	Oyo & Osun	476800
2746	Ilorin	NGA	Kwara & Kogi	475800
2747	Abeokuta	NGA	Ogun	427400
2748	Port Harcourt	NGA	Rivers & Bayelsa	410000
2749	Zaria	NGA	Kaduna	379200
2750	Ilesha	NGA	Oyo & Osun	378400
2751	Onitsha	NGA	Anambra & Enugu & Eb	371900
2752	Iwo	NGA	Oyo & Osun	362000
2753	Ado-Ekiti	NGA	Ondo & Ekiti	359400
2754	Abuja	NGA	Federal Capital Dist	350100
2755	Kaduna	NGA	Kaduna	342200
2756	Mushin	NGA	Lagos	333200
2757	Maiduguri	NGA	Borno & Yobe	320000
2758	Enugu	NGA	Anambra & Enugu & Eb	316100
2759	Ede	NGA	Oyo & Osun	307100
2760	Aba	NGA	Imo & Abia	298900
2761	Ife	NGA	Oyo & Osun	296800
2762	Ila	NGA	Oyo & Osun	264000
2763	Oyo	NGA	Oyo & Osun	256400
2764	Ikerre	NGA	Ondo & Ekiti	244600
2765	Benin City	NGA	Edo & Delta	229400
2766	Iseyin	NGA	Oyo & Osun	217300
2767	Katsina	NGA	Katsina	206500
2768	Jos	NGA	Plateau & Nassarawa	206300
2769	Sokoto	NGA	Sokoto & Kebbi & Zam	204900
2770	Ilobu	NGA	Oyo & Osun	199000
2771	Offa	NGA	Kwara & Kogi	197200
2772	Ikorodu	NGA	Lagos	184900
2773	Ilawe-Ekiti	NGA	Ondo & Ekiti	184500
2774	Owo	NGA	Ondo & Ekiti	183500
2775	Ikirun	NGA	Oyo & Osun	181400
2776	Shaki	NGA	Oyo & Osun	174500
2777	Calabar	NGA	Cross River	174400
2778	Ondo	NGA	Ondo & Ekiti	173600
2779	Akure	NGA	Ondo & Ekiti	162300
2780	Gusau	NGA	Sokoto & Kebbi & Zam	158000
2781	Ijebu-Ode	NGA	Ogun	156400
2782	Effon-Alaiye	NGA	Oyo & Osun	153100
2783	Kumo	NGA	Bauchi & Gombe	148000
2784	Shomolu	NGA	Lagos	147700
2785	Oka-Akoko	NGA	Ondo & Ekiti	142900
2786	Ikare	NGA	Ondo & Ekiti	140800
2787	Sapele	NGA	Edo & Delta	139200
2788	Deba Habe	NGA	Bauchi & Gombe	138600
2789	Minna	NGA	Niger	136900
2790	Warri	NGA	Edo & Delta	126100
2791	Bida	NGA	Niger	125500
2792	Ikire	NGA	Oyo & Osun	123300
2793	Makurdi	NGA	Benue	123100
2794	Lafia	NGA	Plateau & Nassarawa	122500
2795	Inisa	NGA	Oyo & Osun	119800
2796	Shagamu	NGA	Ogun	117200
2797	Awka	NGA	Anambra & Enugu & Eb	111200
2798	Gombe	NGA	Bauchi & Gombe	107800
2799	Igboho	NGA	Oyo & Osun	106800
2800	Ejigbo	NGA	Oyo & Osun	105900
2801	Agege	NGA	Lagos	105000
2802	Ise-Ekiti	NGA	Ondo & Ekiti	103400
2803	Ugep	NGA	Cross River	102600
2804	Epe	NGA	Lagos	101000
2805	Alofi	NIU	A	682
2806	Kingston	NFK	A	800
2807	Oslo	NOR	Oslo	508726
2808	Bergen	NOR	Hordaland	230948
2809	Trondheim	NOR	Sor-Trondelag	150166
2810	Stavanger	NOR	Rogaland	108848
2811	Barum	NOR	Akershus	101340
2812	Abidjan	CIV	Abidjan	2500000
2813	Bouake	CIV	Bouake	329850
2814	Yamoussoukro	CIV	Yamoussoukro	130000
2815	Daloa	CIV	Daloa	121842
2816	Korhogo	CIV	Korhogo	109445
2817	al-Sib	OMN	Masqat	155000
2818	Salala	OMN	Zufar	131813
2819	Bawshar	OMN	Masqat	107500
2820	Suhar	OMN	al-Batina	90814
2821	Masqat	OMN	Masqat	51969
2822	Karachi	PAK	Sindh	9269265
2823	Lahore	PAK	Punjab	5063499
2824	Faisalabad	PAK	Punjab	1977246
2825	Rawalpindi	PAK	Punjab	1406214
2826	Multan	PAK	Punjab	1182441
2827	Hyderabad	PAK	Sindh	1151274
2828	Gujranwala	PAK	Punjab	1124749
2829	Peshawar	PAK	Nothwest Border Prov	988005
2830	Quetta	PAK	Baluchistan	560307
2831	Islamabad	PAK	Islamabad	524500
2832	Sargodha	PAK	Punjab	455360
2833	Sialkot	PAK	Punjab	417597
2834	Bahawalpur	PAK	Punjab	403408
2835	Sukkur	PAK	Sindh	329176
2836	Jhang	PAK	Punjab	292214
2837	Sheikhupura	PAK	Punjab	271875
2838	Larkana	PAK	Sindh	270366
2839	Gujrat	PAK	Punjab	250121
2840	Mardan	PAK	Nothwest Border Prov	244511
2841	Kasur	PAK	Punjab	241649
2842	Rahim Yar Khan	PAK	Punjab	228479
2843	Sahiwal	PAK	Punjab	207388
2844	Okara	PAK	Punjab	200901
2845	Wah	PAK	Punjab	198400
2846	Dera Ghazi Khan	PAK	Punjab	188100
2847	Mirpur Khas	PAK	Sind	184500
2848	Nawabshah	PAK	Sind	183100
2849	Mingora	PAK	Nothwest Border Prov	174500
2850	Chiniot	PAK	Punjab	169300
2851	Kamoke	PAK	Punjab	151000
2852	Mandi Burewala	PAK	Punjab	149900
2853	Jhelum	PAK	Punjab	145800
2854	Sadiqabad	PAK	Punjab	141500
2855	Jacobabad	PAK	Sind	137700
2856	Shikarpur	PAK	Sind	133300
2857	Khanewal	PAK	Punjab	133000
2858	Hafizabad	PAK	Punjab	130200
2859	Kohat	PAK	Nothwest Border Prov	125300
2860	Muzaffargarh	PAK	Punjab	121600
2861	Khanpur	PAK	Punjab	117800
2862	Gojra	PAK	Punjab	115000
2863	Bahawalnagar	PAK	Punjab	109600
2864	Muridke	PAK	Punjab	108600
2865	Pak Pattan	PAK	Punjab	107800
2866	Abottabad	PAK	Nothwest Border Prov	106000
2867	Tando Adam	PAK	Sind	103400
2868	Jaranwala	PAK	Punjab	103300
2869	Khairpur	PAK	Sind	102200
2870	Chishtian Mandi	PAK	Punjab	101700
2871	Daska	PAK	Punjab	101500
2872	Dadu	PAK	Sind	98600
2873	Mandi Bahauddin	PAK	Punjab	97300
2874	Ahmadpur East	PAK	Punjab	96000
2875	Kamalia	PAK	Punjab	95300
2876	Khuzdar	PAK	Baluchistan	93100
2877	Vihari	PAK	Punjab	92300
2878	Dera Ismail Khan	PAK	Nothwest Border Prov	90400
2879	Wazirabad	PAK	Punjab	89700
2880	Nowshera	PAK	Nothwest Border Prov	89400
2881	Koror	PLW	Koror	12000
2882	Ciudad de Panama	PAN	Panama	471373
2883	San Miguelito	PAN	San Miguelito	315382
2884	Port Moresby	PNG	National Capital Dis	247000
2885	Asuncion	PRY	Asuncion	557776
2886	Ciudad del Este	PRY	Alto Parana	133881
2887	San Lorenzo	PRY	Central	133395
2888	Lambare	PRY	Central	99681
2889	Fernando de la Mora	PRY	Central	95287
2890	Lima	PER	Lima	6464693
2891	Arequipa	PER	Arequipa	762000
2892	Trujillo	PER	La Libertad	652000
2893	Chiclayo	PER	Lambayeque	517000
2894	Callao	PER	Callao	424294
2895	Iquitos	PER	Loreto	367000
2896	Chimbote	PER	Ancash	336000
2897	Huancayo	PER	Junin	327000
2898	Piura	PER	Piura	325000
2899	Cusco	PER	Cusco	291000
2900	Pucallpa	PER	Ucayali	220866
2901	Tacna	PER	Tacna	215683
2902	Ica	PER	Ica	194820
2903	Sullana	PER	Piura	147361
2904	Juliaca	PER	Puno	142576
2905	Huanuco	PER	Huanuco	129688
2906	Ayacucho	PER	Ayacucho	118960
2907	Chincha Alta	PER	Ica	110016
2908	Cajamarca	PER	Cajamarca	108009
2909	Puno	PER	Puno	101578
2910	Ventanilla	PER	Callao	101056
2911	Castilla	PER	Piura	90642
2912	Adamstown	PCN	A	42
2913	Garapan	MNP	Saipan	9200
2914	Lisboa	PRT	Lisboa	563210
2915	Porto	PRT	Porto	273060
2916	Amadora	PRT	Lisboa	122106
2917	Coimbra	PRT	Coimbra	96100
2918	Braga	PRT	Braga	90535
2919	San Juan	PRI	San Juan	434374
2920	Bayamon	PRI	Bayamon	224044
2921	Ponce	PRI	Ponce	186475
2922	Carolina	PRI	Carolina	186076
2923	Caguas	PRI	Caguas	140502
2924	Arecibo	PRI	Arecibo	100131
2925	Guaynabo	PRI	Guaynabo	100053
2926	Mayaguez	PRI	Mayaguez	98434
2927	Toa Baja	PRI	Toa Baja	94085
2928	Warszawa	POL	Mazowieckie	1615369
2929	Lodz	POL	Lodzkie	800110
2930	Krakow	POL	Malopolskie	738150
2931	Wroclaw	POL	Dolnoslaskie	636765
2932	Poznan	POL	Wielkopolskie	576899
2933	Gdansk	POL	Pomorskie	458988
2934	Szczecin	POL	Zachodnio-Pomorskie	416988
2935	Bydgoszcz	POL	Kujawsko-Pomorskie	386855
2936	Lublin	POL	Lubelskie	356251
2937	Katowice	POL	Slaskie	345934
2938	Bialystok	POL	Podlaskie	283937
2939	Czestochowa	POL	Slaskie	257812
2940	Gdynia	POL	Pomorskie	253521
2941	Sosnowiec	POL	Slaskie	244102
2942	Radom	POL	Mazowieckie	232262
2943	Kielce	POL	Swietokrzyskie	212383
2944	Gliwice	POL	Slaskie	212164
2945	Torun	POL	Kujawsko-Pomorskie	206158
2946	Bytom	POL	Slaskie	205560
2947	Zabrze	POL	Slaskie	200177
2948	Bielsko-Biala	POL	Slaskie	180307
2949	Olsztyn	POL	Warminsko-Mazurskie	170904
2950	Rzeszow	POL	Podkarpackie	162049
2951	Ruda Slaska	POL	Slaskie	159665
2952	Rybnik	POL	Slaskie	144582
2953	Walbrzych	POL	Dolnoslaskie	136923
2954	Tychy	POL	Slaskie	133178
2955	Dabrowa Gornicza	POL	Slaskie	131037
2956	Plock	POL	Mazowieckie	131011
2957	Elblag	POL	Warminsko-Mazurskie	129782
2958	Opole	POL	Opolskie	129553
2959	Gorzow Wielkopolski	POL	Lubuskie	126019
2960	Wloclawek	POL	Kujawsko-Pomorskie	123373
2961	Chorzow	POL	Slaskie	121708
2962	Tarnow	POL	Malopolskie	121494
2963	Zielona Gora	POL	Lubuskie	118182
2964	Koszalin	POL	Zachodnio-Pomorskie	112375
2965	Legnica	POL	Dolnoslaskie	109335
2966	Kalisz	POL	Wielkopolskie	106641
2967	Grudziadz	POL	Kujawsko-Pomorskie	102434
2968	Slupsk	POL	Pomorskie	102370
2969	Jastrzebie-Zdroj	POL	Slaskie	102294
2970	Jaworzno	POL	Slaskie	97929
2971	Jelenia Gora	POL	Dolnoslaskie	93901
2972	Malabo	GNQ	Bioko	40000
2973	Doha	QAT	Doha	355000
2974	Paris	FRA	Ile-de-France	2125246
2975	Marseille	FRA	Provence-Alpes-Cote	798430
2976	Lyon	FRA	Rhone-Alpes	445452
2977	Toulouse	FRA	Midi-Pyrenees	390350
2978	Nice	FRA	Provence-Alpes-Cote	342738
2979	Nantes	FRA	Pays de la Loire	270251
2980	Strasbourg	FRA	Alsace	264115
2981	Montpellier	FRA	Languedoc-Roussillon	225392
2982	Bordeaux	FRA	Aquitaine	215363
2983	Rennes	FRA	Haute-Normandie	206229
2984	Le Havre	FRA	Champagne-Ardenne	190905
2985	Reims	FRA	Nord-Pas-de-Calais	187206
2986	Lille	FRA	Rhone-Alpes	184657
2987	St-Etienne	FRA	Bretagne	180210
2988	Toulon	FRA	Provence-Alpes-Cote	160639
2989	Grenoble	FRA	Rhone-Alpes	153317
2990	Angers	FRA	Pays de la Loire	151279
2991	Dijon	FRA	Bourgogne	149867
2992	Brest	FRA	Bretagne	149634
2993	Le Mans	FRA	Pays de la Loire	146105
2994	Clermont-Ferrand	FRA	Auvergne	137140
2995	Amiens	FRA	Picardie	135501
2996	Aix-en-Provence	FRA	Provence-Alpes-Cote	134222
2997	Limoges	FRA	Limousin	133968
2998	Nimes	FRA	Languedoc-Roussillon	133424
2999	Tours	FRA	Centre	132820
3000	Villeurbanne	FRA	Rhone-Alpes	124215
3001	Metz	FRA	Lorraine	123776
3002	Besancon	FRA	Franche-Comte	117733
3003	Caen	FRA	Basse-Normandie	113987
3004	Orleans	FRA	Centre	113126
3005	Mulhouse	FRA	Alsace	110359
3006	Rouen	FRA	Haute-Normandie	106592
3007	Boulogne-Billancourt	FRA	Ile-de-France	106367
3008	Perpignan	FRA	Languedoc-Roussillon	105115
3009	Nancy	FRA	Lorraine	103605
3010	Roubaix	FRA	Nord-Pas-de-Calais	96984
3011	Argenteuil	FRA	Ile-de-France	93961
3012	Tourcoing	FRA	Nord-Pas-de-Calais	93540
3013	Montreuil	FRA	Ile-de-France	90674
3014	Cayenne	GUF	Cayenne	50699
3015	Faaa	PYF	Tahiti	25888
3016	Papeete	PYF	Tahiti	25553
3017	Saint-Denis	REU	Saint-Denis	131480
3018	Bucuresti	ROM	Bukarest	2016131
3019	Iasi	ROM	Iasi	348070
3020	Constanta	ROM	Constanta	342264
3021	Cluj-Napoca	ROM	Cluj	332498
3022	Galati	ROM	Galati	330276
3023	Timisoara	ROM	Timis	324304
3024	Brasov	ROM	Brasov	314225
3025	Craiova	ROM	Dolj	313530
3026	Ploiesti	ROM	Prahova	251348
3027	Braila	ROM	Braila	233756
3028	Oradea	ROM	Bihor	222239
3029	Bacau	ROM	Bacau	209235
3030	Pitesti	ROM	Arges	187170
3031	Arad	ROM	Arad	184408
3032	Sibiu	ROM	Sibiu	169611
3033	Targu Mures	ROM	Mures	165153
3034	Baia Mare	ROM	Maramures	149665
3035	Buzau	ROM	Buzau	148372
3036	Satu Mare	ROM	Satu Mare	130059
3037	Botosani	ROM	Botosani	128730
3038	Piatra Neamt	ROM	Neamt	125070
3039	Ramnicu Valcea	ROM	Valcea	119741
3040	Suceava	ROM	Suceava	118549
3041	Drobeta-Turnu Severin	ROM	Mehedinti	117865
3042	Targoviste	ROM	Dambovita	98980
3043	Focsani	ROM	Vrancea	98979
3044	Targu Jiu	ROM	Gorj	98524
3045	Tulcea	ROM	Tulcea	96278
3046	Resita	ROM	Caras-Severin	93976
3047	Kigali	RWA	Kigali	286000
3048	Stockholm	SWE	Lisboa	750348
3049	Gothenburg [Goteborg]	SWE	West Gotanmaan lan	466990
3050	Malmo	SWE	Skane lan	259579
3051	Uppsala	SWE	Uppsala lan	189569
3052	Linkoping	SWE	East Gotanmaan lan	133168
3053	Vasteras	SWE	Vastmanlands lan	126328
3054	Orebro	SWE	Orebros lan	124207
3055	Norrkoping	SWE	East Gotanmaan lan	122199
3056	Helsingborg	SWE	Skane lan	117737
3057	Jonkoping	SWE	Jonkopings lan	117095
3058	Umea	SWE	Vasterbottens lan	104512
3059	Lund	SWE	Skane lan	98948
3060	Boras	SWE	West Gotanmaan lan	96883
3061	Sundsvall	SWE	Vasternorrlands lan	93126
3062	Gavle	SWE	Gavleborgs lan	90742
3063	Jamestown	SHN	Saint Helena	1500
3064	Basseterre	KNA	St George Basseterre	11600
3065	Castries	LCA	Castries	2301
3066	Kingstown	VCT	St George	17100
3067	Saint-Pierre	SPM	Saint-Pierre	5808
3068	Berlin	DEU	Berliini	3386667
3069	Hamburg	DEU	Hamburg	1704735
3070	Munich [Munchen]	DEU	Baijeri	1194560
3071	Koln	DEU	Nordrhein-Westfalen	962507
3072	Frankfurt am Main	DEU	Hessen	643821
3073	Essen	DEU	Nordrhein-Westfalen	599515
3074	Dortmund	DEU	Nordrhein-Westfalen	590213
3075	Stuttgart	DEU	Baden-Wurttemberg	582443
3076	Dusseldorf	DEU	Nordrhein-Westfalen	568855
3077	Bremen	DEU	Bremen	540330
3078	Duisburg	DEU	Nordrhein-Westfalen	519793
3079	Hannover	DEU	Niedersachsen	514718
3080	Leipzig	DEU	Saksi	489532
3081	Nurnberg	DEU	Baijeri	486628
3082	Dresden	DEU	Saksi	476668
3083	Bochum	DEU	Nordrhein-Westfalen	392830
3084	Wuppertal	DEU	Nordrhein-Westfalen	368993
3085	Bielefeld	DEU	Nordrhein-Westfalen	321125
3086	Mannheim	DEU	Baden-Wurttemberg	307730
3087	Bonn	DEU	Nordrhein-Westfalen	301048
3088	Gelsenkirchen	DEU	Nordrhein-Westfalen	281979
3089	Karlsruhe	DEU	Baden-Wurttemberg	277204
3090	Wiesbaden	DEU	Hessen	268716
3091	Munster	DEU	Nordrhein-Westfalen	264670
3092	Monchengladbach	DEU	Nordrhein-Westfalen	263697
3093	Chemnitz	DEU	Saksi	263222
3094	Augsburg	DEU	Baijeri	254867
3095	Halle/Saale	DEU	Anhalt Sachsen	254360
3096	Braunschweig	DEU	Niedersachsen	246322
3097	Aachen	DEU	Nordrhein-Westfalen	243825
3098	Krefeld	DEU	Nordrhein-Westfalen	241769
3099	Magdeburg	DEU	Anhalt Sachsen	235073
3100	Kiel	DEU	Schleswig-Holstein	233795
3101	Oberhausen	DEU	Nordrhein-Westfalen	222349
3102	Lubeck	DEU	Schleswig-Holstein	213326
3103	Hagen	DEU	Nordrhein-Westfalen	205201
3104	Rostock	DEU	Mecklenburg-Vorpomme	203279
3105	Freiburg im Breisgau	DEU	Baden-Wurttemberg	202455
3106	Erfurt	DEU	Thuringen	201267
3107	Kassel	DEU	Hessen	196211
3108	Saarbrucken	DEU	Saarland	183836
3109	Mainz	DEU	Rheinland-Pfalz	183134
3110	Hamm	DEU	Nordrhein-Westfalen	181804
3111	Herne	DEU	Nordrhein-Westfalen	175661
3112	Mulheim an der Ruhr	DEU	Nordrhein-Westfalen	173895
3113	Solingen	DEU	Nordrhein-Westfalen	165583
3114	Osnabruck	DEU	Niedersachsen	164539
3115	Ludwigshafen am Rhein	DEU	Rheinland-Pfalz	163771
3116	Leverkusen	DEU	Nordrhein-Westfalen	160841
3117	Oldenburg	DEU	Niedersachsen	154125
3118	Neuss	DEU	Nordrhein-Westfalen	149702
3119	Heidelberg	DEU	Baden-Wurttemberg	139672
3120	Darmstadt	DEU	Hessen	137776
3121	Paderborn	DEU	Nordrhein-Westfalen	137647
3122	Potsdam	DEU	Brandenburg	128983
3123	Wurzburg	DEU	Baijeri	127350
3124	Regensburg	DEU	Baijeri	125236
3125	Recklinghausen	DEU	Nordrhein-Westfalen	125022
3126	Gottingen	DEU	Niedersachsen	124775
3127	Bremerhaven	DEU	Bremen	122735
3128	Wolfsburg	DEU	Niedersachsen	121954
3129	Bottrop	DEU	Nordrhein-Westfalen	121097
3130	Remscheid	DEU	Nordrhein-Westfalen	120125
3131	Heilbronn	DEU	Baden-Wurttemberg	119526
3132	Pforzheim	DEU	Baden-Wurttemberg	117227
3133	Offenbach am Main	DEU	Hessen	116627
3134	Ulm	DEU	Baden-Wurttemberg	116103
3135	Ingolstadt	DEU	Baijeri	114826
3136	Gera	DEU	Thuringen	114718
3137	Salzgitter	DEU	Niedersachsen	112934
3138	Cottbus	DEU	Brandenburg	110894
3139	Reutlingen	DEU	Baden-Wurttemberg	110343
3140	Furth	DEU	Baijeri	109771
3141	Siegen	DEU	Nordrhein-Westfalen	109225
3142	Koblenz	DEU	Rheinland-Pfalz	108003
3143	Moers	DEU	Nordrhein-Westfalen	106837
3144	Bergisch Gladbach	DEU	Nordrhein-Westfalen	106150
3145	Zwickau	DEU	Saksi	104146
3146	Hildesheim	DEU	Niedersachsen	104013
3147	Witten	DEU	Nordrhein-Westfalen	103384
3148	Schwerin	DEU	Mecklenburg-Vorpomme	102878
3149	Erlangen	DEU	Baijeri	100750
3150	Kaiserslautern	DEU	Rheinland-Pfalz	100025
3151	Trier	DEU	Rheinland-Pfalz	99891
3152	Jena	DEU	Thuringen	99779
3153	Iserlohn	DEU	Nordrhein-Westfalen	99474
3154	Gutersloh	DEU	Nordrhein-Westfalen	95028
3155	Marl	DEU	Nordrhein-Westfalen	93735
3156	Lunen	DEU	Nordrhein-Westfalen	92044
3157	Duren	DEU	Nordrhein-Westfalen	91092
3158	Ratingen	DEU	Nordrhein-Westfalen	90951
3159	Velbert	DEU	Nordrhein-Westfalen	89881
3160	Esslingen am Neckar	DEU	Baden-Wurttemberg	89667
3161	Honiara	SLB	Honiara	50100
3162	Lusaka	ZMB	Lusaka	1317000
3163	Ndola	ZMB	Copperbelt	329200
3164	Kitwe	ZMB	Copperbelt	288600
3165	Kabwe	ZMB	Central	154300
3166	Chingola	ZMB	Copperbelt	142400
3167	Mufulira	ZMB	Copperbelt	123900
3168	Luanshya	ZMB	Copperbelt	118100
3169	Apia	WSM	Upolu	35900
3170	Serravalle	SMR	Serravalle/Dogano	4802
3171	San Marino	SMR	San Marino	2294
3172	Sao Tome	STP	Aqua Grande	49541
3173	Riyadh	SAU	Riyadh	3324000
3174	Jedda	SAU	Mekka	2046300
3175	Mekka	SAU	Mekka	965700
3176	Medina	SAU	Medina	608300
3177	al-Dammam	SAU	al-Sharqiya	482300
3178	al-Taif	SAU	Mekka	416100
3179	Tabuk	SAU	Tabuk	292600
3180	Burayda	SAU	al-Qasim	248600
3181	al-Hufuf	SAU	al-Sharqiya	225800
3182	al-Mubarraz	SAU	al-Sharqiya	219100
3183	Khamis Mushayt	SAU	Asir	217900
3184	Hail	SAU	Hail	176800
3185	al-Kharj	SAU	Riad	152100
3186	al-Khubar	SAU	al-Sharqiya	141700
3187	Jubayl	SAU	al-Sharqiya	140800
3188	Hafar al-Batin	SAU	al-Sharqiya	137800
3189	al-Tuqba	SAU	al-Sharqiya	125700
3190	Yanbu	SAU	Medina	119800
3191	Abha	SAU	Asir	112300
3192	Araar	SAU	al-Khudud al-Samaliy	108100
3193	al-Qatif	SAU	al-Sharqiya	98900
3194	al-Hawiya	SAU	Mekka	93900
3195	Unayza	SAU	Qasim	91100
3196	Najran	SAU	Najran	91000
3197	Pikine	SEN	Cap-Vert	855287
3198	Dakar	SEN	Cap-Vert	785071
3199	Thies	SEN	Thies	248000
3200	Kaolack	SEN	Kaolack	199000
3201	Ziguinchor	SEN	Ziguinchor	192000
3202	Rufisque	SEN	Cap-Vert	150000
3203	Saint-Louis	SEN	Saint-Louis	132400
3204	Mbour	SEN	Thies	109300
3205	Diourbel	SEN	Diourbel	99400
3206	Victoria	SYC	Mahe	41000
3207	Freetown	SLE	Western	850000
3208	Singapore	SGP	A	4017733
3209	Bratislava	SVK	Bratislava	448292
3210	Kodice	SVK	Vychodne Slovensko	241874
3211	Predov	SVK	Vychodne Slovensko	93977
3212	Ljubljana	SVN	Osrednjeslovenska	270986
3213	Maribor	SVN	Podravska	115532
3214	Mogadishu	SOM	Banaadir	997000
3215	Hargeysa	SOM	Woqooyi Galbeed	90000
3216	Kismaayo	SOM	Jubbada Hoose	90000
3217	Colombo	LKA	Western	645000
3218	Dehiwala	LKA	Western	203000
3219	Moratuwa	LKA	Western	190000
3220	Jaffna	LKA	Northern	149000
3221	Kandy	LKA	Central	140000
3222	Sri Jayawardenepura Kotte	LKA	Western	118000
3223	Negombo	LKA	Western	100000
3224	Omdurman	SDN	Khartum	1271403
3225	Khartum	SDN	Khartum	947483
3226	Sharq al-Nil	SDN	Khartum	700887
3227	Port Sudan	SDN	al-Bahr al-Ahmar	308195
3228	Kassala	SDN	Kassala	234622
3229	Obeid	SDN	Kurdufan al-Shamaliy	229425
3230	Nyala	SDN	Darfur al-Janubiya	227183
3231	Wad Madani	SDN	al-Jazira	211362
3232	al-Qadarif	SDN	al-Qadarif	191164
3233	Kusti	SDN	al-Bahr al-Abyad	173599
3234	al-Fashir	SDN	Darfur al-Shamaliya	141884
3235	Juba	SDN	Bahr al-Jabal	114980
3236	Helsinki [Helsingfors]	FIN	Newmaa	555474
3237	Espoo	FIN	Newmaa	213271
3238	Tampere	FIN	Pirkanmaa	195468
3239	Vantaa	FIN	Newmaa	178471
3240	Turku [Abo]	FIN	Varsinais-Suomi	172561
3241	Oulu	FIN	Pohjois-Pohjanmaa	120753
3242	Lahti	FIN	Paijat-Hame	96921
3243	Paramaribo	SUR	Paramaribo	112000
3244	Mbabane	SWZ	Hhohho	61000
3245	Zurich	CHE	Zurich	336800
3246	Geneve	CHE	Geneve	173500
3247	Basel	CHE	Basel-Stadt	166700
3248	Bern	CHE	Bern	122700
3249	Lausanne	CHE	Vaud	114500
3250	Damascus	SYR	Damascus	1347000
3251	Aleppo	SYR	Aleppo	1261983
3252	Hims	SYR	Hims	507404
3253	Hama	SYR	Hama	343361
3254	Latakia	SYR	Latakia	264563
3255	al-Qamishliya	SYR	al-Hasaka	144286
3256	Dayr al-Zawr	SYR	Dayr al-Zawr	140459
3257	Jaramana	SYR	Damaskos	138469
3258	Duma	SYR	Damaskos	131158
3259	al-Raqqa	SYR	al-Raqqa	108020
3260	Idlib	SYR	Idlib	91081
3261	Dushanbe	TJK	Karotegin	524000
3262	Khujand	TJK	Khujand	161500
3263	Taipei	TWN	Taipei	2641312
3264	Kaohsiung	TWN	Kaohsiung	1475505
3265	Taichung	TWN	Taichung	940589
3266	Tainan	TWN	Tainan	728060
3267	Panchiao	TWN	Taipei	523850
3268	Chungho	TWN	Taipei	392176
3269	Keelung (Chilung)	TWN	Keelung	385201
3270	Sanchung	TWN	Taipei	380084
3271	Hsinchuang	TWN	Taipei	365048
3272	Hsinchu	TWN	Hsinchu	361958
3273	Chungli	TWN	Taoyuan	318649
3274	Fengshan	TWN	Kaohsiung	318562
3275	Taoyuan	TWN	Taoyuan	316438
3276	Chiayi	TWN	Chiayi	265109
3277	Hsintien	TWN	Taipei	263603
3278	Changhwa	TWN	Changhwa	227715
3279	Yungho	TWN	Taipei	227700
3280	Tucheng	TWN	Taipei	224897
3281	Pingtung	TWN	Pingtung	214727
3282	Yungkang	TWN	Tainan	193005
3283	Pingchen	TWN	Taoyuan	188344
3284	Tali	TWN	Taichung	171940
3285	Taiping	TWN		165524
3286	Pate	TWN	Taoyuan	161700
3287	Fengyuan	TWN	Taichung	161032
3288	Luchou	TWN	Taipei	160516
3289	Hsichuh	TWN	Taipei	154976
3290	Shulin	TWN	Taipei	151260
3291	Yuanlin	TWN	Changhwa	126402
3292	Yangmei	TWN	Taoyuan	126323
3293	Taliao	TWN		115897
3294	Kueishan	TWN		112195
3295	Tanshui	TWN	Taipei	111882
3296	Taitung	TWN	Taitung	111039
3297	Hualien	TWN	Hualien	108407
3298	Nantou	TWN	Nantou	104723
3299	Lungtan	TWN	Taipei	103088
3300	Touliu	TWN	Yunlin	98900
3301	Tsaotun	TWN	Nantou	96800
3302	Kangshan	TWN	Kaohsiung	92200
3303	Ilan	TWN	Ilan	92000
3304	Miaoli	TWN	Miaoli	90000
3305	Dar es Salaam	TZA	Dar es Salaam	1747000
3306	Dodoma	TZA	Dodoma	189000
3307	Mwanza	TZA	Mwanza	172300
3308	Zanzibar	TZA	Zanzibar West	157634
3309	Tanga	TZA	Tanga	137400
3310	Mbeya	TZA	Mbeya	130800
3311	Morogoro	TZA	Morogoro	117800
3312	Arusha	TZA	Arusha	102500
3313	Moshi	TZA	Kilimanjaro	96800
3314	Tabora	TZA	Tabora	92800
3315	Kobenhavn	DNK	Kobenhavn	495699
3316	Arhus	DNK	Arhus	284846
3317	Odense	DNK	Fyn	183912
3318	Aalborg	DNK	Nordjylland	161161
3319	Frederiksberg	DNK	Frederiksberg	90327
3320	Bangkok	THA	Bangkok	6320174
3321	Nonthaburi	THA	Nonthaburi	292100
3322	Nakhon Ratchasima	THA	Nakhon Ratchasima	181400
3323	Chiang Mai	THA	Chiang Mai	171100
3324	Udon Thani	THA	Udon Thani	158100
3325	Hat Yai	THA	Songkhla	148632
3326	Khon Kaen	THA	Khon Kaen	126500
3327	Pak Kret	THA	Nonthaburi	126055
3328	Nakhon Sawan	THA	Nakhon Sawan	123800
3329	Ubon Ratchathani	THA	Ubon Ratchathani	116300
3330	Songkhla	THA	Songkhla	94900
3331	Nakhon Pathom	THA	Nakhon Pathom	94100
3332	Lome	TGO	Maritime	375000
3333	Fakaofo	TKL	Fakaofo	300
3334	Nukualofa	TON	Tongatapu	22400
3335	Chaguanas	TTO	Caroni	56601
3336	Port-of-Spain	TTO	Port-of-Spain	43396
3337	NDjamena	TCD	Chari-Baguirmi	530965
3338	Moundou	TCD	Logone Occidental	99500
3339	Praha	CZE	Hlavni mesto Praha	1181126
3340	Brno	CZE	Jizni Morava	381862
3341	Ostrava	CZE	Severni Morava	320041
3342	Plzen	CZE	Zapadni Cechy	166759
3343	Olomouc	CZE	Severni Morava	102702
3344	Liberec	CZE	Severni Cechy	99155
3345	Ceske Budejovice	CZE	Jizni Cechy	98186
3346	Hradec Kralove	CZE	Vychodni Cechy	98080
3347	Usti nad Labem	CZE	Severni Cechy	95491
3348	Pardubice	CZE	Vychodni Cechy	91309
3349	Tunis	TUN	Tunis	690600
3350	Sfax	TUN	Sfax	257800
3351	Ariana	TUN	Ariana	197000
3352	Ettadhamen	TUN	Ariana	178600
3353	Sousse	TUN	Sousse	145900
3354	Kairouan	TUN	Kairouan	113100
3355	Biserta	TUN	Biserta	108900
3356	Gabes	TUN	Gabes	106600
3357	Istanbul	TUR	Istanbul	8787958
3358	Ankara	TUR	Ankara	3038159
3359	Izmir	TUR	Izmir	2130359
3360	Adana	TUR	Adana	1131198
3361	Bursa	TUR	Bursa	1095842
3362	Gaziantep	TUR	Gaziantep	789056
3363	Konya	TUR	Konya	628364
3364	Mersin (Icel)	TUR	Icel	587212
3365	Antalya	TUR	Antalya	564914
3366	Diyarbakir	TUR	Diyarbakir	479884
3367	Kayseri	TUR	Kayseri	475657
3368	Eskisehir	TUR	Eskisehir	470781
3369	Sanliurfa	TUR	Sanliurfa	405905
3370	Samsun	TUR	Samsun	339871
3371	Malatya	TUR	Malatya	330312
3372	Gebze	TUR	Kocaeli	264170
3373	Denizli	TUR	Denizli	253848
3374	Sivas	TUR	Sivas	246642
3375	Erzurum	TUR	Erzurum	246535
3376	Tarsus	TUR	Adana	246206
3377	Kahramanmaras	TUR	Kahramanmaras	245772
3378	Elazig	TUR	Elazig	228815
3379	Van	TUR	Van	219319
3380	Sultanbeyli	TUR	Istanbul	211068
3381	Izmit (Kocaeli)	TUR	Kocaeli	210068
3382	Manisa	TUR	Manisa	207148
3383	Batman	TUR	Batman	203793
3384	Balikesir	TUR	Balikesir	196382
3385	Sakarya (Adapazari)	TUR	Sakarya	190641
3386	Iskenderun	TUR	Hatay	153022
3387	Osmaniye	TUR	Osmaniye	146003
3388	Corum	TUR	Corum	145495
3389	Kutahya	TUR	Kutahya	144761
3390	Hatay (Antakya)	TUR	Hatay	143982
3391	Kirikkale	TUR	Kirikkale	142044
3392	Adiyaman	TUR	Adiyaman	141529
3393	Trabzon	TUR	Trabzon	138234
3394	Ordu	TUR	Ordu	133642
3395	Aydin	TUR	Aydin	128651
3396	Usak	TUR	Usak	128162
3397	Edirne	TUR	Edirne	123383
3398	Corlu	TUR	Tekirdag	123300
3399	Isparta	TUR	Isparta	121911
3400	Karabuk	TUR	Karabuk	118285
3401	Kilis	TUR	Kilis	118245
3402	Alanya	TUR	Antalya	117300
3403	Kiziltepe	TUR	Mardin	112000
3404	Zonguldak	TUR	Zonguldak	111542
3405	Siirt	TUR	Siirt	107100
3406	Viransehir	TUR	Sanliurfa	106400
3407	Tekirdag	TUR	Tekirdag	106077
3408	Karaman	TUR	Karaman	104200
3409	Afyon	TUR	Afyon	103984
3410	Aksaray	TUR	Aksaray	102681
3411	Ceyhan	TUR	Adana	102412
3412	Erzincan	TUR	Erzincan	102304
3413	Bismil	TUR	Diyarbakir	101400
3414	Nazilli	TUR	Aydin	99900
3415	Tokat	TUR	Tokat	99500
3416	Kars	TUR	Kars	93000
3417	Inegol	TUR	Bursa	90500
3418	Bandirma	TUR	Balikesir	90200
3419	Ashgabat	TKM	Ahal	540600
3420	Charjew	TKM	Lebap	189200
3421	Dashhowuz	TKM	Dashhowuz	141800
3422	Mary	TKM	Mary	101000
3423	Cockburn Town	TCA	Grand Turk	4800
3424	Funafuti	TUV	Funafuti	4600
3425	Kampala	UGA	Central	890800
3426	Kyiv	UKR	Kiova	2624000
3427	Harkova [Harkiv]	UKR	Harkova	1500000
3428	Dnipropetrovsk	UKR	Dnipropetrovsk	1103000
3429	Donetsk	UKR	Donetsk	1050000
3430	Odesa	UKR	Odesa	1011000
3431	Zaporizzja	UKR	Zaporizzja	848000
3432	Lviv	UKR	Lviv	788000
3433	Kryvyi Rig	UKR	Dnipropetrovsk	703000
3434	Mykolajiv	UKR	Mykolajiv	508000
3435	Mariupol	UKR	Donetsk	490000
3436	Lugansk	UKR	Lugansk	469000
3437	Vinnytsja	UKR	Vinnytsja	391000
3438	Makijivka	UKR	Donetsk	384000
3439	Herson	UKR	Herson	353000
3440	Sevastopol	UKR	Krim	348000
3441	Simferopol	UKR	Krim	339000
3442	Pultava [Poltava]	UKR	Pultava	313000
3443	Tdernigiv	UKR	Tdernigiv	313000
3444	Tderkasy	UKR	Tderkasy	309000
3445	Gorlivka	UKR	Donetsk	299000
3446	Zytomyr	UKR	Zytomyr	297000
3447	Sumy	UKR	Sumy	294000
3448	Dniprodzerzynsk	UKR	Dnipropetrovsk	270000
3449	Kirovograd	UKR	Kirovograd	265000
3450	Hmelnytskyi	UKR	Hmelnytskyi	262000
3451	Tdernivtsi	UKR	Tdernivtsi	259000
3452	Rivne	UKR	Rivne	245000
3453	Krementduk	UKR	Pultava	239000
3454	Ivano-Frankivsk	UKR	Ivano-Frankivsk	237000
3455	Ternopil	UKR	Ternopil	236000
3456	Lutsk	UKR	Volynia	217000
3457	Bila Tserkva	UKR	Kiova	215000
3458	Kramatorsk	UKR	Donetsk	186000
3459	Melitopol	UKR	Zaporizzja	169000
3460	Kertd	UKR	Krim	162000
3461	Nikopol	UKR	Dnipropetrovsk	149000
3462	Berdjansk	UKR	Zaporizzja	130000
3463	Pavlograd	UKR	Dnipropetrovsk	127000
3464	Sjeverodonetsk	UKR	Lugansk	127000
3465	Slovjansk	UKR	Donetsk	127000
3466	Uzgorod	UKR	Taka-Karpatia	127000
3467	Altdevsk	UKR	Lugansk	119000
3468	Lysytdansk	UKR	Lugansk	116000
3469	Jevpatorija	UKR	Krim	112000
3470	Kamjanets-Podilskyi	UKR	Hmelnytskyi	109000
3471	Jenakijeve	UKR	Donetsk	105000
3472	Krasnyi Lutd	UKR	Lugansk	101000
3473	Stahanov	UKR	Lugansk	101000
3474	Oleksandrija	UKR	Kirovograd	99000
3475	Konotop	UKR	Sumy	96000
3476	Kostjantynivka	UKR	Donetsk	95000
3477	Berdytdiv	UKR	Zytomyr	90000
3478	Izmajil	UKR	Odesa	90000
3479	Gostka	UKR	Sumy	90000
3480	Uman	UKR	Tderkasy	90000
3481	Brovary	UKR	Kiova	89000
3482	Mukatdeve	UKR	Taka-Karpatia	89000
3483	Budapest	HUN	Budapest	1811552
3484	Debrecen	HUN	Hajdu-Bihar	203648
3485	Miskolc	HUN	Borsod-Abauj-Zemplen	172357
3486	Szeged	HUN	Csongrad	158158
3487	Pecs	HUN	Baranya	157332
3488	Gyor	HUN	Gyor-Moson-Sopron	127119
3489	Nyiregyhaza	HUN	Szabolcs-Szatmar-Ber	112419
3490	Kecskemet	HUN	Bacs-Kiskun	105606
3491	Szekesfehervar	HUN	Fejer	105119
3492	Montevideo	URY	Montevideo	1236000
3493	Noumea	NCL	A	76293
3494	Auckland	NZL	Auckland	381800
3495	Christchurch	NZL	Canterbury	324200
3496	Manukau	NZL	Auckland	281800
3497	North Shore	NZL	Auckland	187700
3498	Waitakere	NZL	Auckland	170600
3499	Wellington	NZL	Wellington	166700
3500	Dunedin	NZL	Dunedin	119600
3501	Hamilton	NZL	Hamilton	117100
3502	Lower Hutt	NZL	Wellington	98100
3503	Toskent	UZB	Toskent Shahri	2117500
3504	Namangan	UZB	Namangan	370500
3505	Samarkand	UZB	Samarkand	361800
3506	Andijon	UZB	Andijon	318600
3507	Buhoro	UZB	Buhoro	237100
3508	Karsi	UZB	Qashqadaryo	194100
3509	Nukus	UZB	Karakalpakistan	194100
3510	KuKon	UZB	Fargona	190100
3511	Fargona	UZB	Fargona	180500
3512	Circik	UZB	Toskent	146400
3513	Margilon	UZB	Fargona	140800
3514	Urgenc	UZB	Khorazm	138900
3515	Angren	UZB	Toskent	128000
3516	Cizah	UZB	Cizah	124800
3517	Navoi	UZB	Navoi	116300
3518	Olmalik	UZB	Toskent	114900
3519	Termiz	UZB	Surkhondaryo	109500
3520	Minsk	BLR	Horad Minsk	1674000
3521	Gomel	BLR	Gomel	475000
3522	Mogiljov	BLR	Mogiljov	356000
3523	Vitebsk	BLR	Vitebsk	340000
3524	Grodno	BLR	Grodno	302000
3525	Brest	BLR	Brest	286000
3526	Bobruisk	BLR	Mogiljov	221000
3527	Baranovitdi	BLR	Brest	167000
3528	Borisov	BLR	Minsk	151000
3529	Pinsk	BLR	Brest	130000
3530	Orda	BLR	Vitebsk	124000
3531	Mozyr	BLR	Gomel	110000
3532	Novopolotsk	BLR	Vitebsk	106000
3533	Lida	BLR	Grodno	101000
3534	Soligorsk	BLR	Minsk	101000
3535	Molodetdno	BLR	Minsk	97000
3536	Mata-Utu	WLF	Wallis	1137
3537	Port-Vila	VUT	Shefa	33700
3538	Citta del Vaticano	VAT	A	455
3539	Caracas	VEN	Distrito Federal	1975294
3540	Maracaibo	VEN	Zulia	1304776
3541	Barquisimeto	VEN	Lara	877239
3542	Valencia	VEN	Carabobo	794246
3543	Ciudad Guayana	VEN	Bolivar	663713
3544	Petare	VEN	Miranda	488868
3545	Maracay	VEN	Aragua	444443
3546	Barcelona	VEN	Anzoategui	322267
3547	Maturin	VEN	Monagas	319726
3548	San Cristobal	VEN	Tachira	319373
3549	Ciudad Bolivar	VEN	Bolivar	301107
3550	Cumana	VEN	Sucre	293105
3551	Merida	VEN	Merida	224887
3552	Cabimas	VEN	Zulia	221329
3553	Barinas	VEN	Barinas	217831
3554	Turmero	VEN	Aragua	217499
3555	Baruta	VEN	Miranda	207290
3556	Puerto Cabello	VEN	Carabobo	187722
3557	Santa Ana de Coro	VEN	Falcon	185766
3558	Los Teques	VEN	Miranda	178784
3559	Punto Fijo	VEN	Falcon	167215
3560	Guarenas	VEN	Miranda	165889
3561	Acarigua	VEN	Portuguesa	158954
3562	Puerto La Cruz	VEN	Anzoategui	155700
3563	Ciudad Losada	VEN		134501
3564	Guacara	VEN	Carabobo	131334
3565	Valera	VEN	Trujillo	130281
3566	Guanare	VEN	Portuguesa	125621
3567	Carupano	VEN	Sucre	119639
3568	Catia La Mar	VEN	Distrito Federal	117012
3569	El Tigre	VEN	Anzoategui	116256
3570	Guatire	VEN	Miranda	109121
3571	Calabozo	VEN	Guarico	107146
3572	Pozuelos	VEN	Anzoategui	105690
3573	Ciudad Ojeda	VEN	Zulia	99354
3574	Ocumare del Tuy	VEN	Miranda	97168
3575	Valle de la Pascua	VEN	Guarico	95927
3576	Araure	VEN	Portuguesa	94269
3577	San Fernando de Apure	VEN	Apure	93809
3578	San Felipe	VEN	Yaracuy	90940
3579	El Limon	VEN	Aragua	90000
3580	Moscow	RUS	Moscow (City)	8389200
3581	St Petersburg	RUS	Pietari	4694000
3582	Novosibirsk	RUS	Novosibirsk	1398800
3583	Nizni Novgorod	RUS	Nizni Novgorod	1357000
3584	Jekaterinburg	RUS	Sverdlovsk	1266300
3585	Samara	RUS	Samara	1156100
3586	Omsk	RUS	Omsk	1148900
3587	Kazan	RUS	Tatarstan	1101000
3588	Ufa	RUS	Badkortostan	1091200
3589	Tdeljabinsk	RUS	Tdeljabinsk	1083200
3590	Rostov-na-Donu	RUS	Rostov-na-Donu	1012700
3591	Perm	RUS	Perm	1009700
3592	Volgograd	RUS	Volgograd	993400
3593	Voronez	RUS	Voronez	907700
3594	Krasnojarsk	RUS	Krasnojarsk	875500
3595	Saratov	RUS	Saratov	874000
3596	Toljatti	RUS	Samara	722900
3597	Uljanovsk	RUS	Uljanovsk	667400
3598	Izevsk	RUS	Udmurtia	652800
3599	Krasnodar	RUS	Krasnodar	639000
3600	Jaroslavl	RUS	Jaroslavl	616700
3601	Habarovsk	RUS	Habarovsk	609400
3602	Vladivostok	RUS	Primorje	606200
3603	Irkutsk	RUS	Irkutsk	593700
3604	Barnaul	RUS	Altai	580100
3605	Novokuznetsk	RUS	Kemerovo	561600
3606	Penza	RUS	Penza	532200
3607	Rjazan	RUS	Rjazan	529900
3608	Orenburg	RUS	Orenburg	523600
3609	Lipetsk	RUS	Lipetsk	521000
3610	Nabereznyje Tdelny	RUS	Tatarstan	514700
3611	Tula	RUS	Tula	506100
3612	Tjumen	RUS	Tjumen	503400
3613	Kemerovo	RUS	Kemerovo	492700
3614	Astrahan	RUS	Astrahan	486100
3615	Tomsk	RUS	Tomsk	482100
3616	Kirov	RUS	Kirov	466200
3617	Ivanovo	RUS	Ivanovo	459200
3618	Tdeboksary	RUS	Tduvassia	459200
3619	Brjansk	RUS	Brjansk	457400
3620	Tver	RUS	Tver	454900
3621	Kursk	RUS	Kursk	443500
3622	Magnitogorsk	RUS	Tdeljabinsk	427900
3623	Kaliningrad	RUS	Kaliningrad	424400
3624	Nizni Tagil	RUS	Sverdlovsk	390900
3625	Murmansk	RUS	Murmansk	376300
3626	Ulan-Ude	RUS	Burjatia	370400
3627	Kurgan	RUS	Kurgan	364700
3628	Arkangeli	RUS	Arkangeli	361800
3629	Sotdi	RUS	Krasnodar	358600
3630	Smolensk	RUS	Smolensk	353400
3631	Orjol	RUS	Orjol	344500
3632	Stavropol	RUS	Stavropol	343300
3633	Belgorod	RUS	Belgorod	342000
3634	Kaluga	RUS	Kaluga	339300
3635	Vladimir	RUS	Vladimir	337100
3636	Mahatdkala	RUS	Dagestan	332800
3637	Tderepovets	RUS	Vologda	324400
3638	Saransk	RUS	Mordva	314800
3639	Tambov	RUS	Tambov	312000
3640	Vladikavkaz	RUS	North Ossetia-Alania	310100
3641	Tdita	RUS	Tdita	309900
3642	Vologda	RUS	Vologda	302500
3643	Veliki Novgorod	RUS	Novgorod	299500
3644	Komsomolsk-na-Amure	RUS	Habarovsk	291600
3645	Kostroma	RUS	Kostroma	288100
3646	Volzski	RUS	Volgograd	286900
3647	Taganrog	RUS	Rostov-na-Donu	284400
3648	Petroskoi	RUS	Karjala	282100
3649	Bratsk	RUS	Irkutsk	277600
3650	Dzerzinsk	RUS	Nizni Novgorod	277100
3651	Surgut	RUS	Hanti-Mansia	274900
3652	Orsk	RUS	Orenburg	273900
3653	Sterlitamak	RUS	Badkortostan	265200
3654	Angarsk	RUS	Irkutsk	264700
3655	Jodkar-Ola	RUS	Marinmaa	249200
3656	Rybinsk	RUS	Jaroslavl	239600
3657	Prokopjevsk	RUS	Kemerovo	237300
3658	Niznevartovsk	RUS	Hanti-Mansia	233900
3659	Naltdik	RUS	Kabardi-Balkaria	233400
3660	Syktyvkar	RUS	Komi	229700
3661	Severodvinsk	RUS	Arkangeli	229300
3662	Bijsk	RUS	Altai	225000
3663	Niznekamsk	RUS	Tatarstan	223400
3664	Blagovedtdensk	RUS	Amur	222000
3665	Gahty	RUS	Rostov-na-Donu	221800
3666	Staryi Oskol	RUS	Belgorod	213800
3667	Zelenograd	RUS	Moscow (City)	207100
3668	Balakovo	RUS	Saratov	206000
3669	Novorossijsk	RUS	Krasnodar	203300
3670	Pihkova	RUS	Pihkova	201500
3671	Zlatoust	RUS	Tdeljabinsk	196900
3672	Jakutsk	RUS	Saha (Jakutia)	195400
3673	Podolsk	RUS	Moskova	194300
3674	Petropavlovsk-Kamtdatski	RUS	Kamtdatka	194100
3675	Kamensk-Uralski	RUS	Sverdlovsk	190600
3676	Engels	RUS	Saratov	189000
3677	Syzran	RUS	Samara	186900
3678	Grozny	RUS	Tdetdenia	186000
3679	Novotderkassk	RUS	Rostov-na-Donu	184400
3680	Berezniki	RUS	Perm	181900
3681	Juzno-Sahalinsk	RUS	Sahalin	179200
3682	Volgodonsk	RUS	Rostov-na-Donu	178200
3683	Abakan	RUS	Hakassia	169200
3684	Maikop	RUS	Adygea	167300
3685	Miass	RUS	Tdeljabinsk	166200
3686	Armavir	RUS	Krasnodar	164900
3687	Ljubertsy	RUS	Moskova	163900
3688	Rubtsovsk	RUS	Altai	162600
3689	Kovrov	RUS	Vladimir	159900
3690	Nahodka	RUS	Primorje	157700
3691	Ussurijsk	RUS	Primorje	157300
3692	Salavat	RUS	Badkortostan	156800
3693	Mytidtdi	RUS	Moskova	155700
3694	Kolomna	RUS	Moskova	150700
3695	Elektrostal	RUS	Moskova	147000
3696	Murom	RUS	Vladimir	142400
3697	Kolpino	RUS	Pietari	141200
3698	Norilsk	RUS	Krasnojarsk	140800
3699	Almetjevsk	RUS	Tatarstan	140700
3700	Novomoskovsk	RUS	Tula	138100
3701	Dimitrovgrad	RUS	Uljanovsk	137000
3702	Pervouralsk	RUS	Sverdlovsk	136100
3703	Himki	RUS	Moskova	133700
3704	Baladiha	RUS	Moskova	132900
3705	Nevinnomyssk	RUS	Stavropol	132600
3706	Pjatigorsk	RUS	Stavropol	132500
3707	Korolev	RUS	Moskova	132400
3708	Serpuhov	RUS	Moskova	132000
3709	Odintsovo	RUS	Moskova	127400
3710	Orehovo-Zujevo	RUS	Moskova	124900
3711	Kamydin	RUS	Volgograd	124600
3712	Novotdeboksarsk	RUS	Tduvassia	123400
3713	Tderkessk	RUS	Karatdai-Tderkessia	121700
3714	Atdinsk	RUS	Krasnojarsk	121600
3715	Magadan	RUS	Magadan	121000
3716	Mitdurinsk	RUS	Tambov	120700
3717	Kislovodsk	RUS	Stavropol	120400
3718	Jelets	RUS	Lipetsk	119400
3719	Seversk	RUS	Tomsk	118600
3720	Noginsk	RUS	Moskova	117200
3721	Velikije Luki	RUS	Pihkova	116300
3722	Novokuibydevsk	RUS	Samara	116200
3723	Neftekamsk	RUS	Badkortostan	115700
3724	Leninsk-Kuznetski	RUS	Kemerovo	113800
3725	Oktjabrski	RUS	Badkortostan	111500
3726	Sergijev Posad	RUS	Moskova	111100
3727	Arzamas	RUS	Nizni Novgorod	110700
3728	Kiseljovsk	RUS	Kemerovo	110000
3729	Novotroitsk	RUS	Orenburg	109600
3730	Obninsk	RUS	Kaluga	108300
3731	Kansk	RUS	Krasnojarsk	107400
3732	Glazov	RUS	Udmurtia	106300
3733	Solikamsk	RUS	Perm	106000
3734	Sarapul	RUS	Udmurtia	105700
3735	Ust-Ilimsk	RUS	Irkutsk	105200
3736	Gtdolkovo	RUS	Moskova	104900
3737	Mezduretdensk	RUS	Kemerovo	104400
3738	Usolje-Sibirskoje	RUS	Irkutsk	103500
3739	Elista	RUS	Kalmykia	103300
3740	Novodahtinsk	RUS	Rostov-na-Donu	101900
3741	Votkinsk	RUS	Udmurtia	101700
3742	Kyzyl	RUS	Tyva	101100
3743	Serov	RUS	Sverdlovsk	100400
3744	Zelenodolsk	RUS	Tatarstan	100200
3745	Zeleznodoroznyi	RUS	Moskova	100100
3746	Kinedma	RUS	Ivanovo	100000
3747	Kuznetsk	RUS	Penza	98200
3748	Uhta	RUS	Komi	98000
3749	Jessentuki	RUS	Stavropol	97900
3750	Tobolsk	RUS	Tjumen	97600
3751	Neftejugansk	RUS	Hanti-Mansia	97400
3752	Bataisk	RUS	Rostov-na-Donu	97300
3753	Nojabrsk	RUS	Yamalin Nenetsia	97300
3754	Baladov	RUS	Saratov	97100
3755	Zeleznogorsk	RUS	Kursk	96900
3756	Zukovski	RUS	Moskova	96500
3757	Anzero-Sudzensk	RUS	Kemerovo	96100
3758	Bugulma	RUS	Tatarstan	94100
3759	Zeleznogorsk	RUS	Krasnojarsk	94000
3760	Novouralsk	RUS	Sverdlovsk	93300
3761	Pudkin	RUS	Pietari	92900
3762	Vorkuta	RUS	Komi	92600
3763	Derbent	RUS	Dagestan	92300
3764	Kirovo-Tdepetsk	RUS	Kirov	91600
3765	Krasnogorsk	RUS	Moskova	91000
3766	Klin	RUS	Moskova	90000
3767	Tdaikovski	RUS	Perm	90000
3768	Novyi Urengoi	RUS	Yamalin Nenetsia	89800
3769	Ho Chi Minh City	VNM	Ho Chi Minh City	3980000
3770	Hanoi	VNM	Hanoi	1410000
3771	Haiphong	VNM	Haiphong	783133
3772	Da Nang	VNM	Quang Nam-Da Nang	382674
3773	Bien Hoa	VNM	Dong Nai	282095
3774	Nha Trang	VNM	Khanh Hoa	221331
3775	Hue	VNM	Thua Thien-Hue	219149
3776	Can Tho	VNM	Can Tho	215587
3777	Cam Pha	VNM	Quang Binh	209086
3778	Nam Dinh	VNM	Nam Ha	171699
3779	Quy Nhon	VNM	Binh Dinh	163385
3780	Vung Tau	VNM	Ba Ria-Vung Tau	145145
3781	Rach Gia	VNM	Kien Giang	141132
3782	Long Xuyen	VNM	An Giang	132681
3783	Thai Nguyen	VNM	Bac Thai	127643
3784	Hong Gai	VNM	Quang Ninh	127484
3785	Phan Thiet	VNM	Binh Thuan	114236
3786	Cam Ranh	VNM	Khanh Hoa	114041
3787	Vinh	VNM	Nghe An	112455
3788	My Tho	VNM	Tien Giang	108404
3789	Da Lat	VNM	Lam Dong	106409
3790	Buon Ma Thuot	VNM	Dac Lac	97044
3791	Tallinn	EST	Harjumaa	403981
3792	Tartu	EST	Tartumaa	101246
3793	New York	USA	New York	8008278
3794	Los Angeles	USA	California	3694820
3795	Chicago	USA	Illinois	2896016
3796	Houston	USA	Texas	1953631
3797	Philadelphia	USA	Pennsylvania	1517550
3798	Phoenix	USA	Arizona	1321045
3799	San Diego	USA	California	1223400
3800	Dallas	USA	Texas	1188580
3801	San Antonio	USA	Texas	1144646
3802	Detroit	USA	Michigan	951270
3803	San Jose	USA	California	894943
3804	Indianapolis	USA	Indiana	791926
3805	San Francisco	USA	California	776733
3806	Jacksonville	USA	Florida	735167
3807	Columbus	USA	Ohio	711470
3808	Austin	USA	Texas	656562
3809	Baltimore	USA	Maryland	651154
3810	Memphis	USA	Tennessee	650100
3811	Milwaukee	USA	Wisconsin	596974
3812	Boston	USA	Massachusetts	589141
3813	Washington	USA	District of Columbia	572059
3814	Nashville-Davidson	USA	Tennessee	569891
3815	El Paso	USA	Texas	563662
3816	Seattle	USA	Washington	563374
3817	Denver	USA	Colorado	554636
3818	Charlotte	USA	North Carolina	540828
3819	Fort Worth	USA	Texas	534694
3820	Portland	USA	Oregon	529121
3821	Oklahoma City	USA	Oklahoma	506132
3822	Tucson	USA	Arizona	486699
3823	New Orleans	USA	Louisiana	484674
3824	Las Vegas	USA	Nevada	478434
3825	Cleveland	USA	Ohio	478403
3826	Long Beach	USA	California	461522
3827	Albuquerque	USA	New Mexico	448607
3828	Kansas City	USA	Missouri	441545
3829	Fresno	USA	California	427652
3830	Virginia Beach	USA	Virginia	425257
3831	Atlanta	USA	Georgia	416474
3832	Sacramento	USA	California	407018
3833	Oakland	USA	California	399484
3834	Mesa	USA	Arizona	396375
3835	Tulsa	USA	Oklahoma	393049
3836	Omaha	USA	Nebraska	390007
3837	Minneapolis	USA	Minnesota	382618
3838	Honolulu	USA	Hawaii	371657
3839	Miami	USA	Florida	362470
3840	Colorado Springs	USA	Colorado	360890
3841	Saint Louis	USA	Missouri	348189
3842	Wichita	USA	Kansas	344284
3843	Santa Ana	USA	California	337977
3844	Pittsburgh	USA	Pennsylvania	334563
3845	Arlington	USA	Texas	332969
3846	Cincinnati	USA	Ohio	331285
3847	Anaheim	USA	California	328014
3848	Toledo	USA	Ohio	313619
3849	Tampa	USA	Florida	303447
3850	Buffalo	USA	New York	292648
3851	Saint Paul	USA	Minnesota	287151
3852	Corpus Christi	USA	Texas	277454
3853	Aurora	USA	Colorado	276393
3854	Raleigh	USA	North Carolina	276093
3855	Newark	USA	New Jersey	273546
3856	Lexington-Fayette	USA	Kentucky	260512
3857	Anchorage	USA	Alaska	260283
3858	Louisville	USA	Kentucky	256231
3859	Riverside	USA	California	255166
3860	Saint Petersburg	USA	Florida	248232
3861	Bakersfield	USA	California	247057
3862	Stockton	USA	California	243771
3863	Birmingham	USA	Alabama	242820
3864	Jersey City	USA	New Jersey	240055
3865	Norfolk	USA	Virginia	234403
3866	Baton Rouge	USA	Louisiana	227818
3867	Hialeah	USA	Florida	226419
3868	Lincoln	USA	Nebraska	225581
3869	Greensboro	USA	North Carolina	223891
3870	Plano	USA	Texas	222030
3871	Rochester	USA	New York	219773
3872	Glendale	USA	Arizona	218812
3873	Akron	USA	Ohio	217074
3874	Garland	USA	Texas	215768
3875	Madison	USA	Wisconsin	208054
3876	Fort Wayne	USA	Indiana	205727
3877	Fremont	USA	California	203413
3878	Scottsdale	USA	Arizona	202705
3879	Montgomery	USA	Alabama	201568
3880	Shreveport	USA	Louisiana	200145
3881	Augusta-Richmond County	USA	Georgia	199775
3882	Lubbock	USA	Texas	199564
3883	Chesapeake	USA	Virginia	199184
3884	Mobile	USA	Alabama	198915
3885	Des Moines	USA	Iowa	198682
3886	Grand Rapids	USA	Michigan	197800
3887	Richmond	USA	Virginia	197790
3888	Yonkers	USA	New York	196086
3889	Spokane	USA	Washington	195629
3890	Glendale	USA	California	194973
3891	Tacoma	USA	Washington	193556
3892	Irving	USA	Texas	191615
3893	Huntington Beach	USA	California	189594
3894	Modesto	USA	California	188856
3895	Durham	USA	North Carolina	187035
3896	Columbus	USA	Georgia	186291
3897	Orlando	USA	Florida	185951
3898	Boise City	USA	Idaho	185787
3899	Winston-Salem	USA	North Carolina	185776
3900	San Bernardino	USA	California	185401
3901	Jackson	USA	Mississippi	184256
3902	Little Rock	USA	Arkansas	183133
3903	Salt Lake City	USA	Utah	181743
3904	Reno	USA	Nevada	180480
3905	Newport News	USA	Virginia	180150
3906	Chandler	USA	Arizona	176581
3907	Laredo	USA	Texas	176576
3908	Henderson	USA	Nevada	175381
3909	Arlington	USA	Virginia	174838
3910	Knoxville	USA	Tennessee	173890
3911	Amarillo	USA	Texas	173627
3912	Providence	USA	Rhode Island	173618
3913	Chula Vista	USA	California	173556
3914	Worcester	USA	Massachusetts	172648
3915	Oxnard	USA	California	170358
3916	Dayton	USA	Ohio	166179
3917	Garden Grove	USA	California	165196
3918	Oceanside	USA	California	161029
3919	Tempe	USA	Arizona	158625
3920	Huntsville	USA	Alabama	158216
3921	Ontario	USA	California	158007
3922	Chattanooga	USA	Tennessee	155554
3923	Fort Lauderdale	USA	Florida	152397
3924	Springfield	USA	Massachusetts	152082
3925	Springfield	USA	Missouri	151580
3926	Santa Clarita	USA	California	151088
3927	Salinas	USA	California	151060
3928	Tallahassee	USA	Florida	150624
3929	Rockford	USA	Illinois	150115
3930	Pomona	USA	California	149473
3931	Metairie	USA	Louisiana	149428
3932	Paterson	USA	New Jersey	149222
3933	Overland Park	USA	Kansas	149080
3934	Santa Rosa	USA	California	147595
3935	Syracuse	USA	New York	147306
3936	Kansas City	USA	Kansas	146866
3937	Hampton	USA	Virginia	146437
3938	Lakewood	USA	Colorado	144126
3939	Vancouver	USA	Washington	143560
3940	Irvine	USA	California	143072
3941	Aurora	USA	Illinois	142990
3942	Moreno Valley	USA	California	142381
3943	Pasadena	USA	California	141674
3944	Hayward	USA	California	140030
3945	Brownsville	USA	Texas	139722
3946	Bridgeport	USA	Connecticut	139529
3947	Hollywood	USA	Florida	139357
3948	Warren	USA	Michigan	138247
3949	Torrance	USA	California	137946
3950	Eugene	USA	Oregon	137893
3951	Pembroke Pines	USA	Florida	137427
3952	Salem	USA	Oregon	136924
3953	Pasadena	USA	Texas	133936
3954	Escondido	USA	California	133559
3955	Sunnyvale	USA	California	131760
3956	Savannah	USA	Georgia	131510
3957	Fontana	USA	California	128929
3958	Orange	USA	California	128821
3959	Naperville	USA	Illinois	128358
3960	Alexandria	USA	Virginia	128283
3961	Rancho Cucamonga	USA	California	127743
3962	Grand Prairie	USA	Texas	127427
3963	East Los Angeles	USA	California	126379
3964	Fullerton	USA	California	126003
3965	Corona	USA	California	124966
3966	Flint	USA	Michigan	124943
3967	Paradise	USA	Nevada	124682
3968	Mesquite	USA	Texas	124523
3969	Sterling Heights	USA	Michigan	124471
3970	Sioux Falls	USA	South Dakota	123975
3971	New Haven	USA	Connecticut	123626
3972	Topeka	USA	Kansas	122377
3973	Concord	USA	California	121780
3974	Evansville	USA	Indiana	121582
3975	Hartford	USA	Connecticut	121578
3976	Fayetteville	USA	North Carolina	121015
3977	Cedar Rapids	USA	Iowa	120758
3978	Elizabeth	USA	New Jersey	120568
3979	Lansing	USA	Michigan	119128
3980	Lancaster	USA	California	118718
3981	Fort Collins	USA	Colorado	118652
3982	Coral Springs	USA	Florida	117549
3983	Stamford	USA	Connecticut	117083
3984	Thousand Oaks	USA	California	117005
3985	Vallejo	USA	California	116760
3986	Palmdale	USA	California	116670
3987	Columbia	USA	South Carolina	116278
3988	El Monte	USA	California	115965
3989	Abilene	USA	Texas	115930
3990	North Las Vegas	USA	Nevada	115488
3991	Ann Arbor	USA	Michigan	114024
3992	Beaumont	USA	Texas	113866
3993	Waco	USA	Texas	113726
3994	Macon	USA	Georgia	113336
3995	Independence	USA	Missouri	113288
3996	Peoria	USA	Illinois	112936
3997	Inglewood	USA	California	112580
3998	Springfield	USA	Illinois	111454
3999	Simi Valley	USA	California	111351
4000	Lafayette	USA	Louisiana	110257
4001	Gilbert	USA	Arizona	109697
4002	Carrollton	USA	Texas	109576
4003	Bellevue	USA	Washington	109569
4004	West Valley City	USA	Utah	108896
4005	Clarksville	USA	Tennessee	108787
4006	Costa Mesa	USA	California	108724
4007	Peoria	USA	Arizona	108364
4008	South Bend	USA	Indiana	107789
4009	Downey	USA	California	107323
4010	Waterbury	USA	Connecticut	107271
4011	Manchester	USA	New Hampshire	107006
4012	Allentown	USA	Pennsylvania	106632
4013	McAllen	USA	Texas	106414
4014	Joliet	USA	Illinois	106221
4015	Lowell	USA	Massachusetts	105167
4016	Provo	USA	Utah	105166
4017	West Covina	USA	California	105080
4018	Wichita Falls	USA	Texas	104197
4019	Erie	USA	Pennsylvania	103717
4020	Daly City	USA	California	103621
4021	Citrus Heights	USA	California	103455
4022	Norwalk	USA	California	103298
4023	Gary	USA	Indiana	102746
4024	Berkeley	USA	California	102743
4025	Santa Clara	USA	California	102361
4026	Green Bay	USA	Wisconsin	102313
4027	Cape Coral	USA	Florida	102286
4028	Arvada	USA	Colorado	102153
4029	Pueblo	USA	Colorado	102121
4030	Sandy	USA	Utah	101853
4031	Athens-Clarke County	USA	Georgia	101489
4032	Cambridge	USA	Massachusetts	101355
4033	Westminster	USA	Colorado	100940
4034	San Buenaventura	USA	California	100916
4035	Portsmouth	USA	Virginia	100565
4036	Livonia	USA	Michigan	100545
4037	Burbank	USA	California	100316
4038	Clearwater	USA	Florida	99936
4039	Midland	USA	Texas	98293
4040	Davenport	USA	Iowa	98256
4041	Mission Viejo	USA	California	98049
4042	Miami Beach	USA	Florida	97855
4043	Sunrise Manor	USA	Nevada	95362
4044	New Bedford	USA	Massachusetts	94780
4045	El Cajon	USA	California	94578
4046	Norman	USA	Oklahoma	94193
4047	Richmond	USA	California	94100
4048	Albany	USA	New York	93994
4049	Brockton	USA	Massachusetts	93653
4050	Roanoke	USA	Virginia	93357
4051	Billings	USA	Montana	92988
4052	Compton	USA	California	92864
4053	Gainesville	USA	Florida	92291
4054	Fairfield	USA	California	92256
4055	Arden-Arcade	USA	California	92040
4056	San Mateo	USA	California	91799
4057	Visalia	USA	California	91762
4058	Boulder	USA	Colorado	91238
4059	Cary	USA	North Carolina	91213
4060	Santa Monica	USA	California	91084
4061	Fall River	USA	Massachusetts	90555
4062	Kenosha	USA	Wisconsin	89447
4063	Elgin	USA	Illinois	89408
4064	Odessa	USA	Texas	89293
4065	Carson	USA	California	89089
4066	Charleston	USA	South Carolina	89063
4067	Charlotte Amalie	VIR	St Thomas	13000
4068	Harare	ZWE	Harare	1410000
4069	Bulawayo	ZWE	Bulawayo	621742
4070	Chitungwiza	ZWE	Harare	274912
4071	Mount Darwin	ZWE	Harare	164362
4072	Mutare	ZWE	Manicaland	131367
4073	Gweru	ZWE	Midlands	128037
4074	Gaza	PSE	Gaza	353632
4075	Khan Yunis	PSE	Khan Yunis	123175
4076	Hebron	PSE	Hebron	119401
4077	Jabaliya	PSE	North Gaza	113901
4078	Nablus	PSE	Nablus	100231
4079	Rafah	PSE	Rafah	92020
\.


--
-- Data for Name: country; Type: TABLE DATA; Schema: public; Owner: chriskl
--

COPY country (code, name, continent, region, surfacearea, indepyear, population, lifeexpectancy, gnp, gnpold, localname, governmentform, headofstate, capital, code2) FROM stdin WITH NULL AS '';
AFG	Afghanistan	Asia	Southern and Central Asia	652090	1919	22720000	45.900002	5976.00	1	Afganistan/Afqanestan	Islamic Emirate	Mohammad Omar	1	AF
NLD	Netherlands	Europe	Western Europe	41526	1581	15864000	78.300003	371362.00	360478.00	Nederland	Constitutional Monarchy	Beatrix	5	NL
ANT	Netherlands Antilles	North America	Caribbean	800		217000	74.699997	1941.00		Nederlandse Antillen	Nonmetropolitan Territory of The Netherlands	Beatrix	33	AN
ALB	Albania	Europe	Southern Europe	28748	1912	3401200	71.599998	3205.00	2500.00	Shqiperia	Republic	Rexhep Mejdani	34	AL
DZA	Algeria	Africa	Northern Africa	2381741	1962	31471000	69.699997	49982.00	46966.00	Al-Jazaeir/Algerie	Republic	Abdelaziz Bouteflika	35	DZ
ASM	American Samoa	Oceania	Polynesia	199		68000	75.099998	334.00		Amerika Samoa	US Territory	George W. Bush	54	AS
AND	Andorra	Europe	Southern Europe	468	1278	78000	83.5	1630.00		Andorra	Parliamentary Coprincipality		55	AD
AGO	Angola	Africa	Central Africa	1246700	1975	12878000	38.299999	6648.00	7984.00	Angola	Republic	Jose Eduardo dos Santos	56	AO
AIA	Anguilla	North America	Caribbean	96		8000	76.099998	63.20		Anguilla	Dependent Territory of the UK	Elisabeth II	62	AI
ATG	Antigua and Barbuda	North America	Caribbean	442	1981	68000	70.5	612.00	584.00	Antigua and Barbuda	Constitutional Monarchy	Elisabeth II	63	AG
ARE	United Arab Emirates	Asia	Middle East	83600	1971	2441000	74.099998	37966.00	36846.00	Al-Imarat al-Arabiya al-Muttahida	Emirate Federation	Zayid bin Sultan al-Nahayan	65	AE
ARG	Argentina	South America	South America	2780400	1816	37032000	75.099998	340238.00	323310.00	Argentina	Federal Republic	Fernando de la Rua	69	AR
ARM	Armenia	Asia	Middle East	29800	1991	3520000	66.400002	1813.00	1627.00	Hajastan	Republic	Robert Kotdarjan	126	AM
ABW	Aruba	North America	Caribbean	193		103000	78.400002	828.00	793.00	Aruba	Nonmetropolitan Territory of The Netherlands	Beatrix	129	AW
AUS	Australia	Oceania	Australia and New Zealand	7741220	1901	18886000	79.800003	351182.00	392911.00	Australia	Constitutional Monarchy, Federation	Elisabeth II	135	AU
AZE	Azerbaijan	Asia	Middle East	86600	1991	7734000	62.900002	4127.00	4100.00	Azarbaycan	Federal Republic	Heydar Aliyev	144	AZ
BHS	Bahamas	North America	Caribbean	13878	1973	307000	71.099998	3527.00	3347.00	The Bahamas	Constitutional Monarchy	Elisabeth II	148	BS
BHR	Bahrain	Asia	Middle East	694	1971	617000	73	6366.00	6097.00	Al-Bahrayn	Monarchy (Emirate)	Hamad ibn Isa al-Khalifa	149	BH
BGD	Bangladesh	Asia	Southern and Central Asia	143998	1971	129155000	60.200001	32852.00	31966.00	Bangladesh	Republic	Shahabuddin Ahmad	150	BD
BRB	Barbados	North America	Caribbean	430	1966	270000	73	2223.00	2186.00	Barbados	Constitutional Monarchy	Elisabeth II	174	BB
BEL	Belgium	Europe	Western Europe	30518	1830	10239000	77.800003	249704.00	243948.00	Belgie/Belgique	Constitutional Monarchy, Federation	Albert II	179	BE
BLZ	Belize	North America	Central America	22696	1981	241000	70.900002	630.00	616.00	Belize	Constitutional Monarchy	Elisabeth II	185	BZ
BEN	Benin	Africa	Western Africa	112622	1960	6097000	50.200001	2357.00	2141.00	Benin	Republic	Mathieu Kerekou	187	BJ
BMU	Bermuda	North America	North America	53		65000	76.900002	2328.00	2190.00	Bermuda	Dependent Territory of the UK	Elisabeth II	191	BM
BTN	Bhutan	Asia	Southern and Central Asia	47000	1910	2124000	52.400002	372.00	383.00	Druk-Yul	Monarchy	Jigme Singye Wangchuk	192	BT
BOL	Bolivia	South America	South America	1098581	1825	8329000	63.700001	8571.00	7967.00	Bolivia	Republic	Hugo Banzer Suarez	194	BO
BIH	Bosnia and Herzegovina	Europe	Southern Europe	51197	1992	3972000	71.5	2841.00		Bosna i Hercegovina	Federal Republic	Ante Jelavic	201	BA
BWA	Botswana	Africa	Southern Africa	581730	1966	1622000	39.299999	4834.00	4935.00	Botswana	Republic	Festus G. Mogae	204	BW
BRA	Brazil	South America	South America	8547403	1822	170115000	62.900002	776739.00	804108.00	Brasil	Federal Republic	Fernando Henrique Cardoso	211	BR
GBR	United Kingdom	Europe	British Islands	242900	1066	59623400	77.699997	1378330.00	1296830.00	United Kingdom	Constitutional Monarchy	Elisabeth II	456	GB
VGB	Virgin Islands, British	North America	Caribbean	151		21000	75.400002	612.00	573.00	British Virgin Islands	Dependent Territory of the UK	Elisabeth II	537	VG
BRN	Brunei	Asia	Southeast Asia	5765	1984	328000	73.599998	11705.00	12460.00	Brunei Darussalam	Monarchy (Sultanate)	Haji Hassan al-Bolkiah	538	BN
BGR	Bulgaria	Europe	Eastern Europe	110994	1908	8190900	70.900002	12178.00	10169.00	Balgarija	Republic	Petar Stojanov	539	BG
BFA	Burkina Faso	Africa	Western Africa	274000	1960	11937000	46.700001	2425.00	2201.00	Burkina Faso	Republic	Blaise Compaore	549	BF
BDI	Burundi	Africa	Eastern Africa	27834	1962	6695000	46.200001	903.00	982.00	Burundi/Uburundi	Republic	Pierre Buyoya	552	BI
CYM	Cayman Islands	North America	Caribbean	264		38000	78.900002	1263.00	1186.00	Cayman Islands	Dependent Territory of the UK	Elisabeth II	553	KY
CHL	Chile	South America	South America	756626	1810	15211000	75.699997	72949.00	75780.00	Chile	Republic	Ricardo Lagos Escobar	554	CL
COK	Cook Islands	Oceania	Polynesia	236		20000	71.099998	100.00		The Cook Islands	Nonmetropolitan Territory of New Zealand	Elisabeth II	583	CK
CRI	Costa Rica	North America	Central America	51100	1821	4023000	75.800003	10226.00	9757.00	Costa Rica	Republic	Miguel Angel Rodriguez Echeverria	584	CR
DJI	Djibouti	Africa	Eastern Africa	23200	1977	638000	50.799999	382.00	373.00	Djibouti/Jibuti	Republic	Ismail Omar Guelleh	585	DJ
DMA	Dominica	North America	Caribbean	751	1978	71000	73.400002	256.00	243.00	Dominica	Republic	Vernon Shaw	586	DM
DOM	Dominican Republic	North America	Caribbean	48511	1844	8495000	73.199997	15846.00	15076.00	Republica Dominicana	Republic	Hipolito Mejia Dominguez	587	DO
ECU	Ecuador	South America	South America	283561	1822	12646000	71.099998	19770.00	19769.00	Ecuador	Republic	Gustavo Noboa Bejarano	594	EC
EGY	Egypt	Africa	Northern Africa	1001449	1922	68470000	63.299999	82710.00	75617.00	Misr	Republic	Hosni Mubarak	608	EG
SLV	El Salvador	North America	Central America	21041	1841	6276000	69.699997	11863.00	11203.00	El Salvador	Republic	Francisco Guillermo Flores Perez	645	SV
ERI	Eritrea	Africa	Eastern Africa	117600	1993	3850000	55.799999	650.00	755.00	Ertra	Republic	Isayas Afewerki [Isaias Afwerki]	652	ER
ESP	Spain	Europe	Southern Europe	505992	1492	39441700	78.800003	553233.00	532031.00	Espaaa	Constitutional Monarchy	Juan Carlos I	653	ES
ZAF	South Africa	Africa	Southern Africa	1221037	1910	40377000	51.099998	116729.00	129092.00	South Africa	Republic	Thabo Mbeki	716	ZA
ETH	Ethiopia	Africa	Eastern Africa	1104300	-1000	62565000	45.200001	6353.00	6180.00	YeItyopiya	Republic	Negasso Gidada	756	ET
FLK	Falkland Islands	South America	South America	12173		2000		0.00		Falkland Islands	Dependent Territory of the UK	Elisabeth II	763	FK
FJI	Fiji Islands	Oceania	Melanesia	18274	1970	817000	67.900002	1536.00	2149.00	Fiji Islands	Republic	Josefa Iloilo	764	FJ
PHL	Philippines	Asia	Southeast Asia	300000	1946	75967000	67.5	65107.00	82239.00	Pilipinas	Republic	Gloria Macapagal-Arroyo	766	PH
FRO	Faroe Islands	Europe	Nordic Countries	1399		43000	78.400002	0.00		Foroyar	Part of Denmark	Margrethe II	901	FO
GAB	Gabon	Africa	Central Africa	267668	1960	1226000	50.099998	5493.00	5279.00	Le Gabon	Republic	Omar Bongo	902	GA
GMB	Gambia	Africa	Western Africa	11295	1965	1305000	53.200001	320.00	325.00	The Gambia	Republic	Yahya Jammeh	904	GM
GEO	Georgia	Asia	Middle East	69700	1991	4968000	64.5	6064.00	5924.00	Sakartvelo	Republic	Eduard Gevardnadze	905	GE
GHA	Ghana	Africa	Western Africa	238533	1957	20212000	57.400002	7137.00	6884.00	Ghana	Republic	John Kufuor	910	GH
GIB	Gibraltar	Europe	Southern Europe	6		25000	79	258.00		Gibraltar	Dependent Territory of the UK	Elisabeth II	915	GI
GRD	Grenada	North America	Caribbean	344	1974	94000	64.5	318.00		Grenada	Constitutional Monarchy	Elisabeth II	916	GD
GRL	Greenland	North America	North America	2166090		56000	68.099998	0.00		Kalaallit Nunaat/Gronland	Part of Denmark	Margrethe II	917	GL
GLP	Guadeloupe	North America	Caribbean	1705		456000	77	3501.00		Guadeloupe	Overseas Department of France	Jacques Chirac	919	GP
GUM	Guam	Oceania	Micronesia	549		168000	77.800003	1197.00	1136.00	Guam	US Territory	George W. Bush	921	GU
GTM	Guatemala	North America	Central America	108889	1821	11385000	66.199997	19008.00	17797.00	Guatemala	Republic	Alfonso Portillo Cabrera	922	GT
GIN	Guinea	Africa	Western Africa	245857	1958	7430000	45.599998	2352.00	2383.00	Guinee	Republic	Lansana Conte	926	GN
GNB	Guinea-Bissau	Africa	Western Africa	36125	1974	1213000	49	293.00	272.00	Guine-Bissau	Republic	Kumba Iala	927	GW
GUY	Guyana	South America	South America	214969	1966	861000	64	722.00	743.00	Guyana	Republic	Bharrat Jagdeo	928	GY
HTI	Haiti	North America	Caribbean	27750	1804	8222000	49.200001	3459.00	3107.00	Haiti/Dayti	Republic	Jean-Bertrand Aristide	929	HT
HND	Honduras	North America	Central America	112088	1838	6485000	69.900002	5333.00	4697.00	Honduras	Republic	Carlos Roberto Flores Facusse	933	HN
HKG	Hong Kong	Asia	Eastern Asia	1075		6782000	79.5	166448.00	173610.00	Xianggang/Hong Kong	Special Administrative Region of China	Jiang Zemin	937	HK
SJM	Svalbard and Jan Mayen	Europe	Nordic Countries	62422		3200		0.00		Svalbard og Jan Mayen	Dependent Territory of Norway	Harald V	938	SJ
IDN	Indonesia	Asia	Southeast Asia	1904569	1945	212107000	68	84982.00	215002.00	Indonesia	Republic	Abdurrahman Wahid	939	ID
IND	India	Asia	Southern and Central Asia	3287263	1947	1013662000	62.5	447114.00	430572.00	Bharat/India	Federal Republic	Kocheril Raman Narayanan	1109	IN
IRQ	Iraq	Asia	Middle East	438317	1932	23115000	66.5	11500.00		Al-Iraq	Republic	Saddam Hussein al-Takriti	1365	IQ
IRN	Iran	Asia	Southern and Central Asia	1648195	1906	67702000	69.699997	195746.00	160151.00	Iran	Islamic Republic	Ali Mohammad Khatami-Ardakani	1380	IR
IRL	Ireland	Europe	British Islands	70273	1921	3775100	76.800003	75921.00	73132.00	Ireland/Eire	Republic	Mary McAleese	1447	IE
ISL	Iceland	Europe	Nordic Countries	103000	1944	279000	79.400002	8255.00	7474.00	Island	Republic	Olafur Ragnar Grimsson	1449	IS
ISR	Israel	Asia	Middle East	21056	1948	6217000	78.599998	97477.00	98577.00	Yisraeel/Israeil	Republic	Moshe Katzav	1450	IL
ITA	Italy	Europe	Southern Europe	301316	1861	57680000	79	1161755.00	1145372.00	Italia	Republic	Carlo Azeglio Ciampi	1464	IT
TMP	East Timor	Asia	Southeast Asia	14874		885000	46	0.00		Timor Timur	Administrated by the UN	Jose Alexandre Gusmao	1522	TP
AUT	Austria	Europe	Western Europe	83859	1918	8091800	77.699997	211860.00	206025.00	Osterreich	Federal Republic	Thomas Klestil	1523	AT
JAM	Jamaica	North America	Caribbean	10990	1962	2583000	75.199997	6871.00	6722.00	Jamaica	Constitutional Monarchy	Elisabeth II	1530	JM
JPN	Japan	Asia	Eastern Asia	377829	-660	126714000	80.699997	3787042.00	4192638.00	Nihon/Nippon	Constitutional Monarchy	Akihito	1532	JP
YEM	Yemen	Asia	Middle East	527968	1918	18112000	59.799999	6041.00	5729.00	Al-Yaman	Republic	Ali Abdallah Salih	1780	YE
JOR	Jordan	Asia	Middle East	88946	1946	5083000	77.400002	7526.00	7051.00	Al-Urdunn	Constitutional Monarchy	Abdullah II	1786	JO
CXR	Christmas Island	Oceania	Australia and New Zealand	135		2500		0.00		Christmas Island	Territory of Australia	Elisabeth II	1791	CX
YUG	Yugoslavia	Europe	Southern Europe	102173	1918	10640000	72.400002	17000.00		Jugoslavija	Federal Republic	Vojislav Kodtunica	1792	YU
KHM	Cambodia	Asia	Southeast Asia	181035	1953	11168000	56.5	5121.00	5670.00	Kampuchea	Constitutional Monarchy	Norodom Sihanouk	1800	KH
CMR	Cameroon	Africa	Central Africa	475442	1960	15085000	54.799999	9174.00	8596.00	Cameroun/Cameroon	Republic	Paul Biya	1804	CM
CAN	Canada	North America	North America	9970610	1867	31147000	79.400002	598862.00	625626.00	Canada	Constitutional Monarchy, Federation	Elisabeth II	1822	CA
CPV	Cape Verde	Africa	Western Africa	4033	1975	428000	68.900002	435.00	420.00	Cabo Verde	Republic	Antonio Mascarenhas Monteiro	1859	CV
KAZ	Kazakstan	Asia	Southern and Central Asia	2724900	1991	16223000	63.200001	24375.00	23383.00	Qazaqstan	Republic	Nursultan Nazarbajev	1864	KZ
KEN	Kenya	Africa	Eastern Africa	580367	1963	30080000	48	9217.00	10241.00	Kenya	Republic	Daniel arap Moi	1881	KE
CAF	Central African Republic	Africa	Central Africa	622984	1960	3615000	44	1054.00	993.00	Centrafrique/Be-Afrika	Republic	Ange-Felix Patasse	1889	CF
CHN	China	Asia	Eastern Asia	9572900	-1523	1277558000	71.400002	982268.00	917719.00	Zhongquo	People'sRepublic	Jiang Zemin	1891	CN
KGZ	Kyrgyzstan	Asia	Southern and Central Asia	199900	1991	4699000	63.400002	1626.00	1767.00	Kyrgyzstan	Republic	Askar Akajev	2253	KG
KIR	Kiribati	Oceania	Micronesia	726	1979	83000	59.799999	40.70		Kiribati	Republic	Teburoro Tito	2256	KI
COL	Colombia	South America	South America	1138914	1810	42321000	70.300003	102896.00	105116.00	Colombia	Republic	Andres Pastrana Arango	2257	CO
COM	Comoros	Africa	Eastern Africa	1862	1975	578000	60	4401.00	4361.00	Komori/Comores	Republic	Azali Assoumani	2295	KM
COG	Congo	Africa	Central Africa	342000	1960	2943000	47.400002	2108.00	2287.00	Congo	Republic	Denis Sassou-Nguesso	2296	CG
COD	Congo, The Democratic Republic of the	Africa	Central Africa	2344858	1960	51654000	48.799999	6964.00	2474.00	Republique Democratique du Congo	Republic	Joseph Kabila	2298	CD
CCK	Cocos (Keeling) Islands	Oceania	Australia and New Zealand	14		600		0.00		Cocos (Keeling) Islands	Territory of Australia	Elisabeth II	2317	CC
PRK	North Korea	Asia	Eastern Asia	120538	1948	24039000	70.699997	5332.00		Choson Minjujuui Inmin Konghwaguk (Bukhan)	Socialistic Republic	Kim Jong-il	2318	KP
KOR	South Korea	Asia	Eastern Asia	99434	1948	46844000	74.400002	320749.00	442544.00	Taehan Mineguk (Namhan)	Republic	Kim Dae-jung	2331	KR
GRC	Greece	Europe	Southern Europe	131626	1830	10545700	78.400002	120724.00	119946.00	Ellada	Republic	Kostis Stefanopoulos	2401	GR
HRV	Croatia	Europe	Southern Europe	56538	1991	4473000	73.699997	20208.00	19300.00	Hrvatska	Republic	Gtipe Mesic	2409	HR
CUB	Cuba	North America	Caribbean	110861	1902	11201000	76.199997	17843.00	18862.00	Cuba	Socialistic Republic	Fidel Castro Ruz	2413	CU
KWT	Kuwait	Asia	Middle East	17818	1961	1972000	76.099998	27037.00	30373.00	Al-Kuwayt	Constitutional Monarchy (Emirate)	Jabir al-Ahmad al-Jabir al-Sabah	2429	KW
CYP	Cyprus	Asia	Middle East	9251	1960	754700	76.699997	9333.00	8246.00	Kypros/Kibris	Republic	Glafkos Klerides	2430	CY
LAO	Laos	Asia	Southeast Asia	236800	1953	5433000	53.099998	1292.00	1746.00	Lao	Republic	Khamtay Siphandone	2432	LA
LVA	Latvia	Europe	Baltic Countries	64589	1991	2424200	68.400002	6398.00	5639.00	Latvija	Republic	Vaira Vike-Freiberga	2434	LV
LSO	Lesotho	Africa	Southern Africa	30355	1966	2153000	50.799999	1061.00	1161.00	Lesotho	Constitutional Monarchy	Letsie III	2437	LS
LBN	Lebanon	Asia	Middle East	10400	1941	3282000	71.300003	17121.00	15129.00	Lubnan	Republic	Emile Lahoud	2438	LB
LBR	Liberia	Africa	Western Africa	111369	1847	3154000	51	2012.00		Liberia	Republic	Charles Taylor	2440	LR
LBY	Libyan Arab Jamahiriya	Africa	Northern Africa	1759540	1951	5605000	75.5	44806.00	40562.00	Libiya	Socialistic State	Muammar al-Qadhafi	2441	LY
LIE	Liechtenstein	Europe	Western Europe	160	1806	32300	78.800003	1119.00	1084.00	Liechtenstein	Constitutional Monarchy	Hans-Adam II	2446	LI
LTU	Lithuania	Europe	Baltic Countries	65301	1991	3698500	69.099998	10692.00	9585.00	Lietuva	Republic	Valdas Adamkus	2447	LT
LUX	Luxembourg	Europe	Western Europe	2586	1867	435700	77.099998	16321.00	15519.00	Luxembourg/Letzebuerg	Constitutional Monarchy	Henri	2452	LU
ESH	Western Sahara	Africa	Northern Africa	266000		293000	49.799999	60.00		As-Sahrawiya	Occupied by Marocco	Mohammed Abdel Aziz	2453	EH
MAC	Macao	Asia	Eastern Asia	18		473000	81.599998	5749.00	5940.00	Macau/Aomen	Special Administrative Region of China	Jiang Zemin	2454	MO
MDG	Madagascar	Africa	Eastern Africa	587041	1960	15942000	55	3750.00	3545.00	Madagasikara/Madagascar	Federal Republic	Didier Ratsiraka	2455	MG
MKD	Macedonia	Europe	Southern Europe	25713	1991	2024000	73.800003	1694.00	1915.00	Makedonija	Republic	Boris Trajkovski	2460	MK
MWI	Malawi	Africa	Eastern Africa	118484	1964	10925000	37.599998	1687.00	2527.00	Malawi	Republic	Bakili Muluzi	2462	MW
MDV	Maldives	Asia	Southern and Central Asia	298	1965	286000	62.200001	199.00		Dhivehi Raajje/Maldives	Republic	Maumoon Abdul Gayoom	2463	MV
MYS	Malaysia	Asia	Southeast Asia	329758	1957	22244000	70.800003	69213.00	97884.00	Malaysia	Constitutional Monarchy, Federation	Salahuddin Abdul Aziz Shah Alhaj	2464	MY
MLI	Mali	Africa	Western Africa	1240192	1960	11234000	46.700001	2642.00	2453.00	Mali	Republic	Alpha Oumar Konare	2482	ML
MLT	Malta	Europe	Southern Europe	316	1964	380200	77.900002	3512.00	3338.00	Malta	Republic	Guido de Marco	2484	MT
MAR	Morocco	Africa	Northern Africa	446550	1956	28351000	69.099998	36124.00	33514.00	Al-Maghrib	Constitutional Monarchy	Mohammed VI	2486	MA
MHL	Marshall Islands	Oceania	Micronesia	181	1990	64000	65.5	97.00		Marshall Islands/Majol	Republic	Kessai Note	2507	MH
MTQ	Martinique	North America	Caribbean	1102		395000	78.300003	2731.00	2559.00	Martinique	Overseas Department of France	Jacques Chirac	2508	MQ
MRT	Mauritania	Africa	Western Africa	1025520	1960	2670000	50.799999	998.00	1081.00	Muritaniya/Mauritanie	Republic	Maaouiya Ould SidAhmad Taya	2509	MR
MUS	Mauritius	Africa	Eastern Africa	2040	1968	1158000	71	4251.00	4186.00	Mauritius	Republic	Cassam Uteem	2511	MU
MYT	Mayotte	Africa	Eastern Africa	373		149000	59.5	0.00		Mayotte	Territorial Collectivity of France	Jacques Chirac	2514	YT
MEX	Mexico	North America	Central America	1958201	1810	98881000	71.5	414972.00	401461.00	Mexico	Federal Republic	Vicente Fox Quesada	2515	MX
FSM	Micronesia, Federated States of	Oceania	Micronesia	702	1990	119000	68.599998	212.00		Micronesia	Federal Republic	Leo A. Falcam	2689	FM
MDA	Moldova	Europe	Eastern Europe	33851	1991	4380000	64.5	1579.00	1872.00	Moldova	Republic	Vladimir Voronin	2690	MD
MCO	Monaco	Europe	Western Europe	1.5	1861	34000	78.800003	776.00		Monaco	Constitutional Monarchy	Rainier III	2695	MC
MNG	Mongolia	Asia	Eastern Asia	1566500	1921	2662000	67.300003	1043.00	933.00	Mongol Uls	Republic	Natsagiin Bagabandi	2696	MN
MSR	Montserrat	North America	Caribbean	102		11000	78	109.00		Montserrat	Dependent Territory of the UK	Elisabeth II	2697	MS
MOZ	Mozambique	Africa	Eastern Africa	801590	1975	19680000	37.5	2891.00	2711.00	Mocambique	Republic	Joaquim A. Chissano	2698	MZ
MMR	Myanmar	Asia	Southeast Asia	676578	1948	45611000	54.900002	180375.00	171028.00	Myanma Pye	Republic	kenraali Than Shwe	2710	MM
NAM	Namibia	Africa	Southern Africa	824292	1990	1726000	42.5	3101.00	3384.00	Namibia	Republic	Sam Nujoma	2726	NA
NRU	Nauru	Oceania	Micronesia	21	1968	12000	60.799999	197.00		Naoero/Nauru	Republic	Bernard Dowiyogo	2728	NR
NPL	Nepal	Asia	Southern and Central Asia	147181	1769	23930000	57.799999	4768.00	4837.00	Nepal	Constitutional Monarchy	Gyanendra Bir Bikram	2729	NP
NIC	Nicaragua	North America	Central America	130000	1838	5074000	68.699997	1988.00	2023.00	Nicaragua	Republic	Arnoldo Aleman Lacayo	2734	NI
NER	Niger	Africa	Western Africa	1267000	1960	10730000	41.299999	1706.00	1580.00	Niger	Republic	Mamadou Tandja	2738	NE
NGA	Nigeria	Africa	Western Africa	923768	1960	111506000	51.599998	65707.00	58623.00	Nigeria	Federal Republic	Olusegun Obasanjo	2754	NG
NIU	Niue	Oceania	Polynesia	260		2000		0.00		Niue	Nonmetropolitan Territory of New Zealand	Elisabeth II	2805	NU
NFK	Norfolk Island	Oceania	Australia and New Zealand	36		2000		0.00		Norfolk Island	Territory of Australia	Elisabeth II	2806	NF
NOR	Norway	Europe	Nordic Countries	323877	1905	4478500	78.699997	145895.00	153370.00	Norge	Constitutional Monarchy	Harald V	2807	NO
CIV	Cote deIvoire	Africa	Western Africa	322463	1960	14786000	45.200001	11345.00	10285.00	Cote deIvoire	Republic	Laurent Gbagbo	2814	CI
OMN	Oman	Asia	Middle East	309500	1951	2542000	71.800003	16904.00	16153.00	Uman	Monarchy (Sultanate)	Qabus ibn Said	2821	OM
PAK	Pakistan	Asia	Southern and Central Asia	796095	1947	156483000	61.099998	61289.00	58549.00	Pakistan	Republic	Mohammad Rafiq Tarar	2831	PK
PLW	Palau	Oceania	Micronesia	459	1994	19000	68.599998	105.00		Belau/Palau	Republic	Kuniwo Nakamura	2881	PW
PAN	Panama	North America	Central America	75517	1903	2856000	75.5	9131.00	8700.00	Panama	Republic	Mireya Elisa Moscoso Rodriguez	2882	PA
PNG	Papua New Guinea	Oceania	Melanesia	462840	1975	4807000	63.099998	4988.00	6328.00	Papua New Guinea/Papua Niugini	Constitutional Monarchy	Elisabeth II	2884	PG
PRY	Paraguay	South America	South America	406752	1811	5496000	73.699997	8444.00	9555.00	Paraguay	Republic	Luis Angel Gonzalez Macchi	2885	PY
PER	Peru	South America	South America	1285216	1821	25662000	70	64140.00	65186.00	Peru/Piruw	Republic	Valentin Paniagua Corazao	2890	PE
PCN	Pitcairn	Oceania	Polynesia	49		50		0.00		Pitcairn	Dependent Territory of the UK	Elisabeth II	2912	PN
MNP	Northern Mariana Islands	Oceania	Micronesia	464		78000	75.5	0.00		Northern Mariana Islands	Commonwealth of the US	George W. Bush	2913	MP
PRT	Portugal	Europe	Southern Europe	91982	1143	9997600	75.800003	105954.00	102133.00	Portugal	Republic	Jorge Sampaio	2914	PT
PRI	Puerto Rico	North America	Caribbean	8875		3869000	75.599998	34100.00	32100.00	Puerto Rico	Commonwealth of the US	George W. Bush	2919	PR
POL	Poland	Europe	Eastern Europe	323250	1918	38653600	73.199997	151697.00	135636.00	Polska	Republic	Aleksander Kwasniewski	2928	PL
GNQ	Equatorial Guinea	Africa	Central Africa	28051	1968	453000	53.599998	283.00	542.00	Guinea Ecuatorial	Republic	Teodoro Obiang Nguema Mbasogo	2972	GQ
QAT	Qatar	Asia	Middle East	11000	1971	599000	72.400002	9472.00	8920.00	Qatar	Monarchy	Hamad ibn Khalifa al-Thani	2973	QA
FRA	France	Europe	Western Europe	551500	843	59225700	78.800003	1424285.00	1392448.00	France	Republic	Jacques Chirac	2974	FR
GUF	French Guiana	South America	South America	90000		181000	76.099998	681.00		Guyane francaise	Overseas Department of France	Jacques Chirac	3014	GF
PYF	French Polynesia	Oceania	Polynesia	4000		235000	74.800003	818.00	781.00	Polynesie francaise	Nonmetropolitan Territory of France	Jacques Chirac	3016	PF
REU	Reunion	Africa	Eastern Africa	2510		699000	72.699997	8287.00	7988.00	Reunion	Overseas Department of France	Jacques Chirac	3017	RE
ROM	Romania	Europe	Eastern Europe	238391	1878	22455500	69.900002	38158.00	34843.00	Romania	Republic	Ion Iliescu	3018	RO
RWA	Rwanda	Africa	Eastern Africa	26338	1962	7733000	39.299999	2036.00	1863.00	Rwanda/Urwanda	Republic	Paul Kagame	3047	RW
SWE	Sweden	Europe	Nordic Countries	449964	836	8861400	79.599998	226492.00	227757.00	Sverige	Constitutional Monarchy	Carl XVI Gustaf	3048	SE
SHN	Saint Helena	Africa	Western Africa	314		6000	76.800003	0.00		Saint Helena	Dependent Territory of the UK	Elisabeth II	3063	SH
KNA	Saint Kitts and Nevis	North America	Caribbean	261	1983	38000	70.699997	299.00		Saint Kitts and Nevis	Constitutional Monarchy	Elisabeth II	3064	KN
LCA	Saint Lucia	North America	Caribbean	622	1979	154000	72.300003	571.00		Saint Lucia	Constitutional Monarchy	Elisabeth II	3065	LC
VCT	Saint Vincent and the Grenadines	North America	Caribbean	388	1979	114000	72.300003	285.00		Saint Vincent and the Grenadines	Constitutional Monarchy	Elisabeth II	3066	VC
SPM	Saint Pierre and Miquelon	North America	North America	242		7000	77.599998	0.00		Saint-Pierre-et-Miquelon	Territorial Collectivity of France	Jacques Chirac	3067	PM
DEU	Germany	Europe	Western Europe	357022	1955	82164700	77.400002	2133367.00	2102826.00	Deutschland	Federal Republic	Johannes Rau	3068	DE
SLB	Solomon Islands	Oceania	Melanesia	28896	1978	444000	71.300003	182.00	220.00	Solomon Islands	Constitutional Monarchy	Elisabeth II	3161	SB
ZMB	Zambia	Africa	Eastern Africa	752618	1964	9169000	37.200001	3377.00	3922.00	Zambia	Republic	Frederick Chiluba	3162	ZM
WSM	Samoa	Oceania	Polynesia	2831	1962	180000	69.199997	141.00	157.00	Samoa	Parlementary Monarchy	Malietoa Tanumafili II	3169	WS
SMR	San Marino	Europe	Southern Europe	61	885	27000	81.099998	510.00		San Marino	Republic		3171	SM
STP	Sao Tome and Principe	Africa	Central Africa	964	1975	147000	65.300003	6.00		Sao Tome e Principe	Republic	Miguel Trovoada	3172	ST
SAU	Saudi Arabia	Asia	Middle East	2149690	1932	21607000	67.800003	137635.00	146171.00	Al-Arabiya as-Saudiya	Monarchy	Fahd ibn Abdul-Aziz al-Saud	3173	SA
SEN	Senegal	Africa	Western Africa	196722	1960	9481000	62.200001	4787.00	4542.00	Senegal/Sounougal	Republic	Abdoulaye Wade	3198	SN
SYC	Seychelles	Africa	Eastern Africa	455	1976	77000	70.400002	536.00	539.00	Sesel/Seychelles	Republic	France-Albert Rene	3206	SC
SLE	Sierra Leone	Africa	Western Africa	71740	1961	4854000	45.299999	746.00	858.00	Sierra Leone	Republic	Ahmed Tejan Kabbah	3207	SL
SGP	Singapore	Asia	Southeast Asia	618	1965	3567000	80.099998	86503.00	96318.00	Singapore/Singapura/Xinjiapo/Singapur	Republic	Sellapan Rama Nathan	3208	SG
SVK	Slovakia	Europe	Eastern Europe	49012	1993	5398700	73.699997	20594.00	19452.00	Slovensko	Republic	Rudolf Schuster	3209	SK
SVN	Slovenia	Europe	Southern Europe	20256	1991	1987800	74.900002	19756.00	18202.00	Slovenija	Republic	Milan Kucan	3212	SI
SOM	Somalia	Africa	Eastern Africa	637657	1960	10097000	46.200001	935.00		Soomaaliya	Republic	Abdiqassim Salad Hassan	3214	SO
LKA	Sri Lanka	Asia	Southern and Central Asia	65610	1948	18827000	71.800003	15706.00	15091.00	Sri Lanka/Ilankai	Republic	Chandrika Kumaratunga	3217	LK
SDN	Sudan	Africa	Northern Africa	2505813	1956	29490000	56.599998	10162.00		As-Sudan	Islamic Republic	Omar Hassan Ahmad al-Bashir	3225	SD
FIN	Finland	Europe	Nordic Countries	338145	1917	5171300	77.400002	121914.00	119833.00	Suomi	Republic	Tarja Halonen	3236	FI
SUR	Suriname	South America	South America	163265	1975	417000	71.400002	870.00	706.00	Suriname	Republic	Ronald Venetiaan	3243	SR
SWZ	Swaziland	Africa	Southern Africa	17364	1968	1008000	40.400002	1206.00	1312.00	kaNgwane	Monarchy	Mswati III	3244	SZ
CHE	Switzerland	Europe	Western Europe	41284	1499	7160400	79.599998	264478.00	256092.00	Schweiz/Suisse/Svizzera/Svizra	Federation	Adolf Ogi	3248	CH
SYR	Syria	Asia	Middle East	185180	1941	16125000	68.5	65984.00	64926.00	Suriya	Republic	Bashar al-Assad	3250	SY
TJK	Tajikistan	Asia	Southern and Central Asia	143100	1991	6188000	64.099998	1990.00	1056.00	Tocikiston	Republic	Emomali Rahmonov	3261	TJ
TWN	Taiwan	Asia	Eastern Asia	36188	1945	22256000	76.400002	256254.00	263451.00	Teai-wan	Republic	Chen Shui-bian	3263	TW
TZA	Tanzania	Africa	Eastern Africa	883749	1961	33517000	52.299999	8005.00	7388.00	Tanzania	Republic	Benjamin William Mkapa	3306	TZ
DNK	Denmark	Europe	Nordic Countries	43094	800	5330000	76.5	174099.00	169264.00	Danmark	Constitutional Monarchy	Margrethe II	3315	DK
THA	Thailand	Asia	Southeast Asia	513115	1350	61399000	68.599998	116416.00	153907.00	Prathet Thai	Constitutional Monarchy	Bhumibol Adulyadej	3320	TH
TGO	Togo	Africa	Western Africa	56785	1960	4629000	54.700001	1449.00	1400.00	Togo	Republic	Gnassingbe Eyadema	3332	TG
TKL	Tokelau	Oceania	Polynesia	12		2000		0.00		Tokelau	Nonmetropolitan Territory of New Zealand	Elisabeth II	3333	TK
TON	Tonga	Oceania	Polynesia	650	1970	99000	67.900002	146.00	170.00	Tonga	Monarchy	Taufa'ahau Tupou IV	3334	TO
TTO	Trinidad and Tobago	North America	Caribbean	5130	1962	1295000	68	6232.00	5867.00	Trinidad and Tobago	Republic	Arthur N. R. Robinson	3336	TT
TCD	Chad	Africa	Central Africa	1284000	1960	7651000	50.5	1208.00	1102.00	Tchad/Tshad	Republic	Idriss Deby	3337	TD
CZE	Czech Republic	Europe	Eastern Europe	78866	1993	10278100	74.5	55017.00	52037.00	esko	Republic	Vaclav Havel	3339	CZ
TUN	Tunisia	Africa	Northern Africa	163610	1956	9586000	73.699997	20026.00	18898.00	Tunis/Tunisie	Republic	Zine al-Abidine Ben Ali	3349	TN
TUR	Turkey	Asia	Middle East	774815	1923	66591000	71	210721.00	189122.00	Turkiye	Republic	Ahmet Necdet Sezer	3358	TR
TKM	Turkmenistan	Asia	Southern and Central Asia	488100	1991	4459000	60.900002	4397.00	2000.00	Turkmenostan	Republic	Saparmurad Nijazov	3419	TM
TCA	Turks and Caicos Islands	North America	Caribbean	430		17000	73.300003	96.00		The Turks and Caicos Islands	Dependent Territory of the UK	Elisabeth II	3423	TC
TUV	Tuvalu	Oceania	Polynesia	26	1978	12000	66.300003	6.00		Tuvalu	Constitutional Monarchy	Elisabeth II	3424	TV
UGA	Uganda	Africa	Eastern Africa	241038	1962	21778000	42.900002	6313.00	6887.00	Uganda	Republic	Yoweri Museveni	3425	UG
UKR	Ukraine	Europe	Eastern Europe	603700	1991	50456000	66	42168.00	49677.00	Ukrajina	Republic	Leonid Kutdma	3426	UA
HUN	Hungary	Europe	Eastern Europe	93030	1918	10043200	71.400002	48267.00	45914.00	Magyarorszag	Republic	Ferenc Madl	3483	HU
URY	Uruguay	South America	South America	175016	1828	3337000	75.199997	20831.00	19967.00	Uruguay	Republic	Jorge Batlle Ibaaez	3492	UY
NCL	New Caledonia	Oceania	Melanesia	18575		214000	72.800003	3563.00		Nouvelle-Caledonie	Nonmetropolitan Territory of France	Jacques Chirac	3493	NC
NZL	New Zealand	Oceania	Australia and New Zealand	270534	1907	3862000	77.800003	54669.00	64960.00	New Zealand/Aotearoa	Constitutional Monarchy	Elisabeth II	3499	NZ
UZB	Uzbekistan	Asia	Southern and Central Asia	447400	1991	24318000	63.700001	14194.00	21300.00	Uzbekiston	Republic	Islam Karimov	3503	UZ
BLR	Belarus	Europe	Eastern Europe	207600	1991	10236000	68	13714.00		Belarus	Republic	Aljaksandr Lukadenka	3520	BY
WLF	Wallis and Futuna	Oceania	Polynesia	200		15000		0.00		Wallis-et-Futuna	Nonmetropolitan Territory of France	Jacques Chirac	3536	WF
VUT	Vanuatu	Oceania	Melanesia	12189	1980	190000	60.599998	261.00	246.00	Vanuatu	Republic	John Bani	3537	VU
VAT	Holy See (Vatican City State)	Europe	Southern Europe	0.40000001	1929	1000		9.00		Santa Sede/Citta del Vaticano	Independent Church State	Johannes Paavali II	3538	VA
VEN	Venezuela	South America	South America	912050	1811	24170000	73.099998	95023.00	88434.00	Venezuela	Federal Republic	Hugo Chavez Frias	3539	VE
RUS	Russian Federation	Europe	Eastern Europe	17075400	1991	146934000	67.199997	276608.00	442989.00	Rossija	Federal Republic	Vladimir Putin	3580	RU
VNM	Vietnam	Asia	Southeast Asia	331689	1945	79832000	69.300003	21929.00	22834.00	Viet Nam	Socialistic Republic	Tran Duc Luong	3770	VN
EST	Estonia	Europe	Baltic Countries	45227	1991	1439200	69.5	5328.00	3371.00	Eesti	Republic	Lennart Meri	3791	EE
USA	United States	North America	North America	9363520	1776	278357000	77.099998	8510700.00	8110900.00	United States	Federal Republic	George W. Bush	3813	US
VIR	Virgin Islands, U.S.	North America	Caribbean	347		93000	78.099998	0.00		Virgin Islands of the United States	US Territory	George W. Bush	4067	VI
ZWE	Zimbabwe	Africa	Eastern Africa	390757	1980	11669000	37.799999	5951.00	8670.00	Zimbabwe	Republic	Robert G. Mugabe	4068	ZW
PSE	Palestine	Asia	Middle East	6257		3101000	71.400002	4173.00		Filastin	Autonomous Area	Yasser (Yasir) Arafat	4074	PS
ATA	Antarctica	Antarctica	Antarctica	13120000		0		0.00		A	Co-administrated			AQ
BVT	Bouvet Island	Antarctica	Antarctica	59		0		0.00		Bouvetoya	Dependent Territory of Norway	Harald V		BV
IOT	British Indian Ocean Territory	Africa	Eastern Africa	78		0		0.00		British Indian Ocean Territory	Dependent Territory of the UK	Elisabeth II		IO
SGS	South Georgia and the South Sandwich Islands	Antarctica	Antarctica	3903		0		0.00		South Georgia and the South Sandwich Islands	Dependent Territory of the UK	Elisabeth II		GS
HMD	Heard Island and McDonald Islands	Antarctica	Antarctica	359		0		0.00		Heard and McDonald Islands	Territory of Australia	Elisabeth II		HM
ATF	French Southern territories	Antarctica	Antarctica	7780		0		0.00		Terres australes francaises	Nonmetropolitan Territory of France	Jacques Chirac		TF
UMI	United States Minor Outlying Islands	Oceania	Micronesia/Caribbean	16		0		0.00		United States Minor Outlying Islands	Dependent Territory of the US	George W. Bush		UM
\.


--
-- Data for Name: countrylanguage; Type: TABLE DATA; Schema: public; Owner: chriskl
--

COPY countrylanguage (countrycode, "language", isofficial, percentage) FROM stdin;
AFG	Pashto	t	52.400002
NLD	Dutch	t	95.599998
ANT	Papiamento	t	86.199997
ALB	Albaniana	t	97.900002
DZA	Arabic	t	86
ASM	Samoan	t	90.599998
AND	Spanish	f	44.599998
AGO	Ovimbundu	f	37.200001
AIA	English	t	0
ATG	Creole English	f	95.699997
ARE	Arabic	t	42
ARG	Spanish	t	96.800003
ARM	Armenian	t	93.400002
ABW	Papiamento	f	76.699997
AUS	English	t	81.199997
AZE	Azerbaijani	t	89
BHS	Creole English	f	89.699997
BHR	Arabic	t	67.699997
BGD	Bengali	t	97.699997
BRB	Bajan	f	95.099998
BEL	Dutch	t	59.200001
BLZ	English	t	50.799999
BEN	Fon	f	39.799999
BMU	English	t	100
BTN	Dzongkha	t	50
BOL	Spanish	t	87.699997
BIH	Serbo-Croatian	t	99.199997
BWA	Tswana	f	75.5
BRA	Portuguese	t	97.5
GBR	English	t	97.300003
VGB	English	t	0
BRN	Malay	t	45.5
BGR	Bulgariana	t	83.199997
BFA	Mossi	f	50.200001
BDI	Kirundi	t	98.099998
CYM	English	t	0
CHL	Spanish	t	89.699997
COK	Maori	t	0
CRI	Spanish	t	97.5
DJI	Somali	f	43.900002
DMA	Creole English	f	100
DOM	Spanish	t	98
ECU	Spanish	t	93
EGY	Arabic	t	98.800003
SLV	Spanish	t	100
ERI	Tigrinja	t	49.099998
ESP	Spanish	t	74.400002
ZAF	Zulu	t	22.700001
ETH	Oromo	f	31
FLK	English	t	0
FJI	Fijian	t	50.799999
PHL	Pilipino	t	29.299999
FRO	Faroese	t	100
GAB	Fang	f	35.799999
GMB	Malinke	f	34.099998
GEO	Georgiana	t	71.699997
GHA	Akan	f	52.400002
GIB	English	t	88.900002
GRD	Creole English	f	100
GRL	Greenlandic	t	87.5
GLP	Creole French	f	95
GUM	English	t	37.5
GTM	Spanish	t	64.699997
GIN	Ful	f	38.599998
GNB	Crioulo	f	36.400002
GUY	Creole English	f	96.400002
HTI	Haiti Creole	f	100
HND	Spanish	t	97.199997
HKG	Canton Chinese	f	88.699997
SJM	Norwegian	t	0
IDN	Javanese	f	39.400002
IND	Hindi	t	39.900002
IRQ	Arabic	t	77.199997
IRN	Persian	t	45.700001
IRL	English	t	98.400002
ISL	Icelandic	t	95.699997
ISR	Hebrew	t	63.099998
ITA	Italian	t	94.099998
TMP	Sunda	f	0
AUT	German	t	92
JAM	Creole English	f	94.199997
JPN	Japanese	t	99.099998
YEM	Arabic	t	99.599998
JOR	Arabic	t	97.900002
CXR	Chinese	f	0
YUG	Serbo-Croatian	t	75.199997
KHM	Khmer	t	88.599998
CMR	Fang	f	19.700001
CAN	English	t	60.400002
CPV	Crioulo	f	100
KAZ	Kazakh	t	46
KEN	Kikuyu	f	20.9
CAF	Gbaya	f	23.799999
CHN	Chinese	t	92
KGZ	Kirgiz	t	59.700001
KIR	Kiribati	t	98.900002
COL	Spanish	t	99
COM	Comorian	t	75
COG	Kongo	f	51.5
COD	Luba	f	18
CCK	Malay	f	0
PRK	Korean	t	99.900002
KOR	Korean	t	99.900002
GRC	Greek	t	98.5
HRV	Serbo-Croatian	t	95.900002
CUB	Spanish	t	100
KWT	Arabic	t	78.099998
CYP	Greek	t	74.099998
LAO	Lao	t	67.199997
LVA	Latvian	t	55.099998
LSO	Sotho	t	85
LBN	Arabic	t	93
LBR	Kpelle	f	19.5
LBY	Arabic	t	96
LIE	German	t	89
LTU	Lithuanian	t	81.599998
LUX	Luxembourgish	t	64.400002
ESH	Arabic	t	100
MAC	Canton Chinese	f	85.599998
MDG	Malagasy	t	98.900002
MKD	Macedonian	t	66.5
MWI	Chichewa	t	58.299999
MDV	Dhivehi	t	100
MYS	Malay	t	58.400002
MLI	Bambara	f	31.799999
MLT	Maltese	t	95.800003
MAR	Arabic	t	65
MHL	Marshallese	t	96.800003
MTQ	Creole French	f	96.599998
MRT	Hassaniya	f	81.699997
MUS	Creole French	f	70.599998
MYT	Mahore	f	41.900002
MEX	Spanish	t	92.099998
FSM	Trukese	f	41.599998
MDA	Romanian	t	61.900002
MCO	French	t	41.900002
MNG	Mongolian	t	78.800003
MSR	English	t	0
MOZ	Makua	f	27.799999
MMR	Burmese	t	69
NAM	Ovambo	f	50.700001
NRU	Nauru	t	57.5
NPL	Nepali	t	50.400002
NIC	Spanish	t	97.599998
NER	Hausa	f	53.099998
NGA	Joruba	f	21.4
NIU	Niue	f	0
NFK	English	t	0
NOR	Norwegian	t	96.599998
CIV	Akan	f	30
OMN	Arabic	t	76.699997
PAK	Punjabi	f	48.200001
PLW	Palau	t	82.199997
PAN	Spanish	t	76.800003
PNG	Papuan Languages	f	78.099998
PRY	Spanish	t	55.099998
PER	Spanish	t	79.800003
PCN	Pitcairnese	f	0
MNP	Philippene Languages	f	34.099998
PRT	Portuguese	t	99
PRI	Spanish	t	51.299999
POL	Polish	t	97.599998
GNQ	Fang	f	84.800003
QAT	Arabic	t	40.700001
FRA	French	t	93.599998
GUF	Creole French	f	94.300003
PYF	Tahitian	f	46.400002
REU	Creole French	f	91.5
ROM	Romanian	t	90.699997
RWA	Rwanda	t	100
SWE	Swedish	t	89.5
SHN	English	t	0
KNA	Creole English	f	100
LCA	Creole French	f	80
VCT	Creole English	f	99.099998
SPM	French	t	0
DEU	German	t	91.300003
SLB	Malenasian Languages	f	85.599998
ZMB	Bemba	f	29.700001
WSM	Samoan-English	f	52
SMR	Italian	t	100
STP	Crioulo	f	86.300003
SAU	Arabic	t	95
SEN	Wolof	t	48.099998
SYC	Seselwa	f	91.300003
SLE	Mende	f	34.799999
SGP	Chinese	t	77.099998
SVK	Slovak	t	85.599998
SVN	Slovene	t	87.900002
SOM	Somali	t	98.300003
LKA	Singali	t	60.299999
SDN	Arabic	t	49.400002
FIN	Finnish	t	92.699997
SUR	Sranantonga	f	81
SWZ	Swazi	t	89.900002
CHE	German	t	63.599998
SYR	Arabic	t	90
TJK	Tadzhik	t	62.200001
TWN	Min	f	66.699997
TZA	Nyamwesi	f	21.1
DNK	Danish	t	93.5
THA	Thai	t	52.599998
TGO	Ewe	t	23.200001
TKL	Tokelau	f	0
TON	Tongan	t	98.300003
TTO	English	f	93.5
TCD	Sara	f	27.700001
CZE	Czech	t	81.199997
TUN	Arabic	t	69.900002
TUR	Turkish	t	87.599998
TKM	Turkmenian	t	76.699997
TCA	English	t	0
TUV	Tuvalu	t	92.5
UGA	Ganda	f	18.1
UKR	Ukrainian	t	64.699997
HUN	Hungarian	t	98.5
URY	Spanish	t	95.699997
NCL	Malenasian Languages	f	45.400002
NZL	English	t	87
UZB	Uzbek	t	72.599998
BLR	Belorussian	t	65.599998
WLF	Wallis	f	0
VUT	Bislama	t	56.599998
VAT	Italian	t	0
VEN	Spanish	t	96.900002
RUS	Russian	t	86.599998
VNM	Vietnamese	t	86.800003
EST	Estonian	t	65.300003
USA	English	t	86.199997
VIR	English	t	81.699997
UMI	English	t	0
ZWE	Shona	f	72.099998
PSE	Arabic	f	95.900002
AFG	Dari	t	32.099998
NLD	Fries	f	3.7
ANT	English	f	7.8000002
ALB	Greek	f	1.8
DZA	Berberi	f	14
ASM	English	t	3.0999999
AND	Catalan	t	32.299999
AGO	Mbundu	f	21.6
ATG	English	t	0
ARE	Hindi	f	0
ARG	Italian	f	1.7
ARM	Azerbaijani	f	2.5999999
ABW	English	f	9.5
AUS	Italian	f	2.2
AZE	Russian	f	3
BHS	Creole French	f	10.3
BHR	English	f	0
BGD	Chakma	f	0.40000001
BRB	English	t	0
BEL	French	t	32.599998
BLZ	Spanish	f	31.6
BEN	Joruba	f	12.2
BTN	Nepali	f	34.799999
BOL	Ketdua	t	8.1000004
BWA	Shona	f	12.3
BRA	German	f	0.5
GBR	Kymri	f	0.89999998
BRN	Malay-English	f	28.799999
BGR	Turkish	f	9.3999996
BFA	Ful	f	9.6999998
BDI	French	t	0
CHL	Araucan	f	9.6000004
COK	English	f	0
CRI	Creole English	f	2
DJI	Afar	f	34.799999
DMA	Creole French	f	0
DOM	Creole French	f	2
ECU	Ketdua	f	7
EGY	Sinaberberi	f	0
SLV	Nahua	f	0
ERI	Tigre	f	31.700001
ESP	Catalan	f	16.9
ZAF	Xhosa	t	17.700001
ETH	Amhara	f	30
FJI	Hindi	f	43.700001
PHL	Cebuano	f	23.299999
FRO	Danish	t	0
GAB	Punu-sira-nzebi	f	17.1
GMB	Ful	f	16.200001
GEO	Russian	f	8.8000002
GHA	Mossi	f	15.8
GIB	Arabic	f	7.4000001
GRL	Danish	t	12.5
GLP	French	t	0
GUM	Chamorro	t	29.6
GTM	Quiche	f	10.1
GIN	Malinke	f	23.200001
GNB	Ful	f	16.6
GUY	Caribbean	f	2.2
HTI	French	t	0
HND	Garifuna	f	1.3
HKG	English	t	2.2
SJM	Russian	f	0
IDN	Sunda	f	15.8
IND	Bengali	f	8.1999998
IRQ	Kurdish	f	19
IRN	Azerbaijani	f	16.799999
IRL	Irish	t	1.6
ISL	English	f	0
ISR	Arabic	t	18
ITA	Sardinian	f	2.7
TMP	Portuguese	t	0
AUT	Serbo-Croatian	f	2.2
JAM	Hindi	f	1.9
JPN	Korean	f	0.5
YEM	Soqutri	f	0
JOR	Circassian	f	1
CXR	English	t	0
YUG	Albaniana	f	16.5
KHM	Vietnamese	f	5.5
CMR	Bamileke-bamum	f	18.6
CAN	French	t	23.4
CPV	Portuguese	t	0
KAZ	Russian	f	34.700001
KEN	Luhya	f	13.8
CAF	Banda	f	23.5
CHN	Zhuang	f	1.4
KGZ	Russian	t	16.200001
KIR	Tuvalu	f	0.5
COL	Chibcha	f	0.40000001
COM	Comorian-French	f	12.9
COG	Teke	f	17.299999
COD	Kongo	f	16
CCK	English	t	0
PRK	Chinese	f	0.1
KOR	Chinese	f	0.1
GRC	Turkish	f	0.89999998
HRV	Slovene	f	0
KWT	English	f	0
CYP	Turkish	t	22.4
LAO	Mon-khmer	f	16.5
LVA	Russian	f	32.5
LSO	Zulu	f	15
LBN	Armenian	f	5.9000001
LBR	Bassa	f	13.7
LBY	Berberi	f	1
LIE	Italian	f	2.5
LTU	Russian	f	8.1000004
LUX	Portuguese	f	13
MAC	Portuguese	t	2.3
MDG	French	t	0
MKD	Albaniana	f	22.9
MWI	Lomwe	f	18.4
MDV	English	f	0
MYS	Chinese	f	9
MLI	Ful	f	13.9
MLT	English	t	2.0999999
MAR	Berberi	f	33
MHL	English	t	0
MTQ	French	t	0
MRT	Wolof	f	6.5999999
MUS	Bhojpuri	f	21.1
MYT	French	t	20.299999
MEX	Nahuatl	f	1.8
FSM	Pohnpei	f	23.799999
MDA	Russian	f	23.200001
MCO	Monegasque	f	16.1
MNG	Kazakh	f	5.9000001
MOZ	Tsonga	f	12.4
MMR	Shan	f	8.5
NAM	Nama	f	12.4
NRU	Kiribati	f	17.9
NPL	Maithili	f	11.9
NIC	Miskito	f	1.6
NER	Songhai-zerma	f	21.200001
NGA	Hausa	f	21.1
NIU	English	t	0
NOR	English	f	0.5
CIV	Gur	f	11.7
OMN	Balochi	f	0
PAK	Pashto	f	13.1
PLW	Philippene Languages	f	9.1999998
PAN	Creole English	f	14
PNG	Malenasian Languages	f	20
PRY	Guarani	t	40.099998
PER	Ketdua	t	16.4
MNP	Chamorro	f	30
PRI	English	f	47.400002
POL	German	f	1.3
GNQ	Bubi	f	8.6999998
QAT	Urdu	f	0
FRA	Arabic	f	2.5
GUF	Indian Languages	f	1.9
PYF	French	t	40.799999
REU	Chinese	f	2.8
ROM	Hungarian	f	7.1999998
RWA	French	t	0
SWE	Finnish	f	2.4000001
KNA	English	t	0
LCA	English	t	20
VCT	English	t	0
DEU	Turkish	f	2.5999999
SLB	Papuan Languages	f	8.6000004
ZMB	Tongan	f	11
WSM	Samoan	t	47.5
STP	French	f	0.69999999
SEN	Ful	f	21.700001
SYC	English	t	3.8
SLE	Temne	f	31.799999
SGP	Malay	t	14.1
SVK	Hungarian	f	10.5
SVN	Serbo-Croatian	f	7.9000001
SOM	Arabic	t	0
LKA	Tamil	t	19.6
SDN	Dinka	f	11.5
FIN	Swedish	t	5.6999998
SUR	Hindi	f	0
SWZ	Zulu	f	2
CHE	French	t	19.200001
SYR	Kurdish	f	9
TJK	Uzbek	f	23.200001
TWN	Mandarin Chinese	t	20.1
TZA	Swahili	t	8.8000002
DNK	Turkish	f	0.80000001
THA	Lao	f	26.9
TGO	Kabye	t	13.8
TKL	English	t	0
TON	English	t	0
TTO	Hindi	f	3.4000001
TCD	Arabic	t	12.3
CZE	Moravian	f	12.9
TUN	Arabic-French	f	26.299999
TUR	Kurdish	f	10.6
TKM	Uzbek	f	9.1999998
TUV	Kiribati	f	7.5
UGA	Nkole	f	10.7
UKR	Russian	f	32.900002
HUN	Romani	f	0.5
NCL	French	t	34.299999
NZL	Maori	f	4.3000002
UZB	Russian	f	10.9
BLR	Russian	t	32
WLF	Futuna	f	0
VUT	English	t	28.299999
VEN	Goajiro	f	0.40000001
RUS	Tatar	f	3.2
VNM	Tho	f	1.8
EST	Russian	f	27.799999
USA	Spanish	f	7.5
VIR	Spanish	f	13.3
ZWE	Ndebele	f	16.200001
PSE	Hebrew	f	4.0999999
AFG	Uzbek	f	8.8000002
NLD	Arabic	f	0.89999998
ANT	Dutch	t	0
ALB	Macedonian	f	0.1
ASM	Tongan	f	3.0999999
AND	Portuguese	f	10.8
AGO	Kongo	f	13.2
ARG	Indian Languages	f	0.30000001
ABW	Spanish	f	7.4000001
AUS	Greek	f	1.6
AZE	Lezgian	f	2.3
BGD	Marma	f	0.2
BEL	Italian	f	2.4000001
BLZ	Maya Languages	f	9.6000004
BEN	Adja	f	11.1
BTN	Asami	f	15.2
BOL	Aimara	t	3.2
BWA	San	f	3.5
BRA	Italian	f	0.40000001
GBR	Gaeli	f	0.1
BRN	Chinese	f	9.3000002
BGR	Romani	f	3.7
BFA	Gurma	f	5.6999998
BDI	Swahili	f	0
CHL	Aimara	f	0.5
CRI	Chibcha	f	0.30000001
DJI	Arabic	t	10.6
ERI	Afar	f	4.3000002
ESP	Galecian	f	6.4000001
ZAF	Afrikaans	t	14.3
ETH	Tigrinja	f	7.1999998
PHL	Ilocano	f	9.3000002
GAB	Mpongwe	f	14.6
GMB	Wolof	f	12.6
GEO	Armenian	f	6.8000002
GHA	Ewe	f	11.9
GUM	Philippene Languages	f	19.700001
GTM	Cakchiquel	f	8.8999996
GIN	Susu	f	11
GNB	Balante	f	14.6
GUY	Arawakan	f	1.4
HND	Creole English	f	0.2
HKG	Fukien	f	1.9
IDN	Malay	t	12.1
IND	Telugu	f	7.8000002
IRQ	Azerbaijani	f	1.7
IRN	Kurdish	f	9.1000004
ISR	Russian	f	8.8999996
ITA	Friuli	f	1.2
AUT	Turkish	f	1.5
JPN	Chinese	f	0.2
JOR	Armenian	f	1
YUG	Hungarian	f	3.4000001
KHM	Chinese	f	3.0999999
CMR	Duala	f	10.9
CAN	Chinese	f	2.5
KAZ	Ukrainian	f	5
KEN	Luo	f	12.8
CAF	Mandjia	f	14.8
CHN	Mantdu	f	0.89999998
KGZ	Uzbek	f	14.1
COL	Creole English	f	0.1
COM	Comorian-madagassi	f	5.5
COG	Mboshi	f	11.4
COD	Mongo	f	13.5
LAO	Thai	f	7.8000002
LVA	Belorussian	f	4.0999999
LSO	English	t	0
LBN	French	f	0
LBR	Grebo	f	8.8999996
LIE	Turkish	f	2.5
LTU	Polish	f	7
LUX	Italian	f	4.5999999
MAC	Mandarin Chinese	f	1.2
MKD	Turkish	f	4
MWI	Yao	f	13.2
MYS	Tamil	f	3.9000001
MLI	Senufo and Minianka	f	12
MRT	Tukulor	f	5.4000001
MUS	French	f	3.4000001
MYT	Malagasy	f	16.1
MEX	Yucatec	f	1.1
FSM	Mortlock	f	7.5999999
MDA	Ukrainian	f	8.6000004
MCO	Italian	f	16.1
MNG	Dorbet	f	2.7
MOZ	Sena	f	9.3999996
MMR	Karen	f	6.1999998
NAM	Kavango	f	9.6999998
NRU	Chinese	f	8.5
NPL	Bhojpuri	f	7.5
NIC	Creole English	f	0.5
NER	Tamashek	f	10.4
NGA	Ibo	f	18.1
NOR	Danish	f	0.40000001
CIV	Malinke	f	11.4
PAK	Sindhi	f	11.8
PLW	English	t	3.2
PAN	Guaymi	f	5.3000002
PRY	Portuguese	f	3.2
PER	Aimara	t	2.3
MNP	Chinese	f	7.0999999
POL	Ukrainian	f	0.60000002
FRA	Portuguese	f	1.2
PYF	Chinese	f	2.9000001
REU	Comorian	f	2.8
ROM	Romani	t	0.69999999
SWE	Southern Slavic Languages	f	1.3
DEU	Southern Slavic Languages	f	1.4
SLB	Polynesian Languages	f	3.8
ZMB	Nyanja	f	7.8000002
WSM	English	t	0.60000002
SEN	Serer	f	12.5
SYC	French	t	1.3
SLE	Limba	f	8.3000002
SGP	Tamil	t	7.4000001
SVK	Romani	f	1.7
SVN	Hungarian	f	0.5
LKA	Mixed Languages	f	19.6
SDN	Nubian Languages	f	8.1000004
FIN	Russian	f	0.40000001
CHE	Italian	t	7.6999998
TJK	Russian	f	9.6999998
TWN	Hakka	f	11
TZA	Hehet	f	6.9000001
DNK	Arabic	f	0.69999999
THA	Chinese	f	12.1
TGO	Watyi	f	10.3
TTO	Creole English	f	2.9000001
TCD	Mayo-kebbi	f	11.5
CZE	Slovak	f	3.0999999
TUN	Arabic-French-English	f	3.2
TUR	Arabic	f	1.4
TKM	Russian	f	6.6999998
TUV	English	t	0
UGA	Kiga	f	8.3000002
UKR	Romanian	f	0.69999999
HUN	German	f	0.40000001
NCL	Polynesian Languages	f	11.6
UZB	Tadzhik	f	4.4000001
BLR	Ukrainian	f	1.3
VUT	French	t	14.2
VEN	Warrau	f	0.1
RUS	Ukrainian	f	1.3
VNM	Thai	f	1.6
EST	Ukrainian	f	2.8
USA	French	f	0.69999999
VIR	French	f	2.5
ZWE	English	t	2.2
AFG	Turkmenian	f	1.9
NLD	Turkish	f	0.80000001
AND	French	f	6.1999998
AGO	Luimbe-nganguela	f	5.4000001
ABW	Dutch	t	5.3000002
AUS	Canton Chinese	f	1.1
AZE	Armenian	f	2
BGD	Garo	f	0.1
BEL	Arabic	f	1.6
BLZ	Garifuna	f	6.8000002
BEN	Aizo	f	8.6999998
BOL	Guarani	f	0.1
BWA	Khoekhoe	f	2.5
BRA	Japanese	f	0.40000001
BRN	English	f	3.0999999
BGR	Macedonian	f	2.5999999
BFA	Busansi	f	3.5
CHL	Rapa nui	f	0.2
CRI	Chinese	f	0.2
ERI	Hadareb	f	3.8
ESP	Basque	f	1.6
ZAF	Northsotho	f	9.1000004
ETH	Gurage	f	4.6999998
PHL	Hiligaynon	f	9.1000004
GAB	Mbete	f	13.8
GMB	Diola	f	9.1999998
GEO	Azerbaijani	f	5.5
GHA	Ga-adangme	f	7.8000002
GUM	Korean	f	3.3
GTM	Kekchi	f	4.9000001
GIN	Kissi	f	6
GNB	Portuguese	t	8.1000004
HND	Miskito	f	0.2
HKG	Hakka	f	1.6
IDN	Madura	f	4.3000002
IND	Marathi	f	7.4000001
IRQ	Assyrian	f	0.80000001
IRN	Gilaki	f	5.3000002
ITA	French	f	0.5
AUT	Hungarian	f	0.40000001
JPN	English	f	0.1
YUG	Romani	f	1.4
KHM	Tdam	f	2.4000001
CMR	Ful	f	9.6000004
CAN	Italian	f	1.7
KAZ	German	f	3.0999999
KEN	Kamba	f	11.2
CAF	Ngbaka	f	7.5
CHN	Hui	f	0.80000001
KGZ	Ukrainian	f	1.7
COL	Arawakan	f	0.1
COM	Comorian-Arabic	f	1.6
COG	Mbete	f	4.8000002
COD	Rwanda	f	10.3
LAO	Lao-Soung	f	5.1999998
LVA	Ukrainian	f	2.9000001
LBR	Gio	f	7.9000001
LTU	Belorussian	f	1.4
LUX	French	t	4.1999998
MAC	English	f	0.5
MKD	Romani	f	2.3
MWI	Ngoni	f	6.6999998
MYS	Iban	f	2.8
MLI	Soninke	f	8.6999998
MRT	Soninke	f	2.7
MUS	Hindi	f	1.2
MEX	Zapotec	f	0.60000002
FSM	Kosrean	f	7.3000002
MDA	Gagauzi	f	3.2
MCO	English	f	6.5
MNG	Bajad	f	1.9
MOZ	Lomwe	f	7.8000002
MMR	Rakhine	f	4.5
NAM	Afrikaans	f	9.5
NRU	Tuvalu	f	8.5
NPL	Tharu	f	5.4000001
NIC	Sumo	f	0.2
NER	Ful	f	9.6999998
NGA	Ful	f	11.3
NOR	Swedish	f	0.30000001
CIV	Kru	f	10.5
PAK	Saraiki	f	9.8000002
PLW	Chinese	f	1.6
PAN	Cuna	f	2
PRY	German	f	0.89999998
MNP	Korean	f	6.5
POL	Belorussian	f	0.5
FRA	Italian	f	0.40000001
REU	Malagasy	f	1.4
ROM	German	f	0.40000001
SWE	Arabic	f	0.80000001
DEU	Italian	f	0.69999999
ZMB	Lozi	f	6.4000001
SEN	Diola	f	5
SLE	Kono-vai	f	5.0999999
SVK	Czech and Moravian	f	1.1
SDN	Beja	f	6.4000001
FIN	Estonian	f	0.2
CHE	Romansh	t	0.60000002
TWN	Ami	f	0.60000002
TZA	Haya	f	5.9000001
DNK	German	f	0.5
THA	Malay	f	3.5999999
TGO	Kotokoli	f	5.6999998
TCD	Kanem-bornu	f	9
CZE	Polish	f	0.60000002
TKM	Kazakh	f	2
UGA	Soga	f	8.1999998
UKR	Bulgariana	f	0.30000001
HUN	Serbo-Croatian	f	0.2
UZB	Kazakh	f	3.8
BLR	Polish	f	0.60000002
RUS	Chuvash	f	0.89999998
VNM	Muong	f	1.5
EST	Belorussian	f	1.4
USA	German	f	0.69999999
ZWE	Nyanja	f	2.2
AFG	Balochi	f	0.89999998
AGO	Nyaneka-nkhumbi	f	5.4000001
AUS	Arabic	f	1
BGD	Khasi	f	0.1
BEL	German	t	1
BEN	Bariba	f	8.6999998
BWA	Ndebele	f	1.3
BRA	Indian Languages	f	0.2
BFA	Dagara	f	3.0999999
ERI	Bilin	f	3
ZAF	English	t	8.5
ETH	Somali	f	4.0999999
PHL	Bicol	f	5.6999998
GMB	Soninke	f	7.5999999
GEO	Osseetti	f	2.4000001
GHA	Gurma	f	3.3
GUM	Japanese	f	2
GTM	Mam	f	2.7
GIN	Kpelle	f	4.5999999
GNB	Malinke	f	6.9000001
HKG	Chiu chau	f	1.4
IDN	Minangkabau	f	2.4000001
IND	Tamil	f	6.3000002
IRQ	Persian	f	0.80000001
IRN	Luri	f	4.3000002
ITA	German	f	0.5
AUT	Slovene	f	0.40000001
JPN	Philippene Languages	f	0.1
YUG	Slovak	f	0.69999999
CMR	Tikar	f	7.4000001
CAN	German	f	1.6
KAZ	Uzbek	f	2.3
KEN	Kalenjin	f	10.8
CAF	Sara	f	6.4000001
CHN	Miao	f	0.69999999
KGZ	Tatar	f	1.3
COL	Caribbean	f	0.1
COM	Comorian-Swahili	f	0.5
COG	Punu	f	2.9000001
COD	Zande	f	6.0999999
LVA	Polish	f	2.0999999
LBR	Kru	f	7.1999998
LTU	Ukrainian	f	1.1
LUX	German	t	2.3
MKD	Serbo-Croatian	f	2
MYS	English	f	1.6
MLI	Tamashek	f	7.3000002
MRT	Ful	f	1.2
MUS	Tamil	f	0.80000001
MEX	Mixtec	f	0.60000002
FSM	Yap	f	5.8000002
MDA	Bulgariana	f	1.6
MNG	Buryat	f	1.7
MOZ	Shona	f	6.5
MMR	Mon	f	2.4000001
NAM	Herero	f	8
NRU	English	t	7.5
NPL	Tamang	f	4.9000001
NER	Kanuri	f	4.4000001
NGA	Ibibio	f	5.5999999
NOR	Saame	f	0
CIV	[South]Mande	f	7.6999998
PAK	Urdu	t	7.5999999
PAN	Embera	f	0.60000002
MNP	English	t	4.8000002
FRA	Spanish	f	0.40000001
REU	Tamil	f	0
ROM	Ukrainian	f	0.30000001
SWE	Spanish	f	0.60000002
DEU	Greek	f	0.40000001
ZMB	Chewa	f	5.6999998
SEN	Malinke	f	3.8
SLE	Bullom-sherbro	f	3.8
SVK	Ukrainian and Russian	f	0.60000002
SDN	Nuer	f	4.9000001
FIN	Saame	f	0
TWN	Atayal	f	0.40000001
TZA	Makonde	f	5.9000001
DNK	English	f	0.30000001
THA	Khmer	f	1.3
TGO	Ane	f	5.6999998
TCD	Ouaddai	f	8.6999998
CZE	German	f	0.5
UGA	Teso	f	6
UKR	Hungarian	f	0.30000001
HUN	Romanian	f	0.1
UZB	Karakalpak	f	2
RUS	Bashkir	f	0.69999999
VNM	Chinese	f	1.4
EST	Finnish	f	0.69999999
USA	Italian	f	0.60000002
AGO	Chokwe	f	4.1999998
AUS	Vietnamese	f	0.80000001
BGD	Santhali	f	0.1
BEL	Turkish	f	0.89999998
BEN	Somba	f	6.6999998
BFA	Dyula	f	2.5999999
ERI	Saho	f	3
ZAF	Tswana	f	8.1000004
ETH	Sidamo	f	3.2
PHL	Waray-waray	f	3.8
GEO	Abhyasi	f	1.7
GHA	Joruba	f	1.3
GIN	Yalunka	f	2.9000001
GNB	Mandyako	f	4.9000001
IDN	Batakki	f	2.2
IND	Urdu	f	5.0999999
IRN	Mazandarani	f	3.5999999
ITA	Albaniana	f	0.2
AUT	Polish	f	0.2
JPN	Ainu	f	0
YUG	Macedonian	f	0.5
CMR	Mandara	f	5.6999998
CAN	Polish	f	0.69999999
KAZ	Tatar	f	2
KEN	Gusii	f	6.0999999
CAF	Mbum	f	6.4000001
CHN	Uighur	f	0.60000002
KGZ	Kazakh	f	0.80000001
COG	Sango	f	2.5999999
COD	Ngala and Bangi	f	5.8000002
LVA	Lithuanian	f	1.2
LBR	Mano	f	7.1999998
MYS	Dusun	f	1.1
MLI	Songhai	f	6.9000001
MRT	Zenaga	f	1.2
MUS	Marathi	f	0.69999999
MEX	Otomi	f	0.40000001
FSM	Wolea	f	3.7
MNG	Dariganga	f	1.4
MOZ	Tswa	f	6
MMR	Chin	f	2.2
NAM	Caprivi	f	4.6999998
NPL	Newari	f	3.7
NGA	Kanuri	f	4.0999999
PAK	Balochi	f	3
PAN	Arabic	f	0.60000002
MNP	Carolinian	f	4.8000002
FRA	Turkish	f	0.40000001
ROM	Serbo-Croatian	f	0.1
SWE	Norwegian	f	0.5
DEU	Polish	f	0.30000001
ZMB	Nsenga	f	4.3000002
SEN	Soninke	f	1.3
SLE	Ful	f	3.8
SDN	Zande	f	2.7
TWN	Paiwan	f	0.30000001
TZA	Nyakusa	f	5.4000001
DNK	Swedish	f	0.30000001
THA	Kuy	f	1.1
TGO	Moba	f	5.4000001
TCD	Hadjarai	f	6.6999998
CZE	Silesiana	f	0.40000001
UGA	Lango	f	5.9000001
UKR	Belorussian	f	0.30000001
HUN	Slovak	f	0.1
UZB	Tatar	f	1.8
RUS	Chechen	f	0.60000002
VNM	Khmer	f	1.4
USA	Chinese	f	0.60000002
AGO	Luvale	f	3.5999999
AUS	Serbo-Croatian	f	0.60000002
BGD	Tripuri	f	0.1
BEN	Ful	f	5.5999999
ZAF	Southsotho	f	7.5999999
ETH	Walaita	f	2.8
PHL	Pampango	f	3
GIN	Loma	f	2.3
IDN	Bugi	f	2.2
IND	Gujarati	f	4.8000002
IRN	Balochi	f	2.3
ITA	Slovene	f	0.2
AUT	Czech	f	0.2
CMR	Maka	f	4.9000001
CAN	Spanish	f	0.69999999
KEN	Meru	f	5.5
CHN	Yi	f	0.60000002
KGZ	Tadzhik	f	0.80000001
COD	Rundi	f	3.8
LBR	Loma	f	5.8000002
MOZ	Chuabo	f	5.6999998
MMR	Kachin	f	1.4
NAM	San	f	1.9
NPL	Hindi	f	3
NGA	Edo	f	3.3
PAK	Hindko	f	2.4000001
SLE	Kuranko	f	3.4000001
SDN	Bari	f	2.5
TZA	Chaga and Pare	f	4.9000001
DNK	Norwegian	f	0.30000001
TGO	Naudemba	f	4.0999999
TCD	Tandjile	f	6.5
CZE	Romani	f	0.30000001
UGA	Lugbara	f	4.6999998
UKR	Polish	f	0.1
RUS	Mordva	f	0.5
VNM	Nung	f	1.1
USA	Tagalog	f	0.40000001
AGO	Ambo	f	2.4000001
AUS	German	f	0.60000002
ZAF	Tsonga	f	4.3000002
PHL	Pangasinan	f	1.8
IDN	Banja	f	1.8
IND	Kannada	f	3.9000001
IRN	Arabic	f	2.2
ITA	Romani	f	0.2
AUT	Romanian	f	0.2
CMR	Masana	f	3.9000001
CAN	Portuguese	f	0.69999999
KEN	Nyika	f	4.8000002
CHN	Tujia	f	0.5
COD	Teke	f	2.7
LBR	Malinke	f	5.0999999
MOZ	Ronga	f	3.7
MMR	Kayah	f	0.40000001
NAM	German	f	0.89999998
NGA	Tiv	f	2.3
PAK	Brahui	f	1.2
SLE	Yalunka	f	3.4000001
SDN	Fur	f	2.0999999
TZA	Luguru	f	4.9000001
TGO	Gurma	f	3.4000001
TCD	Gorane	f	6.1999998
CZE	Hungarian	f	0.2
UGA	Gisu	f	4.5
RUS	Kazakh	f	0.40000001
VNM	Miao	f	0.89999998
USA	Polish	f	0.30000001
AGO	Luchazi	f	2.4000001
ZAF	Swazi	f	2.5
PHL	Maguindanao	f	1.4
IDN	Bali	f	1.7
IND	Malajalam	f	3.5999999
IRN	Bakhtyari	f	1.7
CAN	Punjabi	f	0.69999999
KEN	Masai	f	1.6
CHN	Mongolian	f	0.40000001
COD	Boa	f	2.3
MOZ	Marendje	f	3.5
NGA	Ijo	f	1.8
SDN	Chilluk	f	1.7
TZA	Shambala	f	4.3000002
UGA	Acholi	f	4.4000001
RUS	Avarian	f	0.40000001
VNM	Man	f	0.69999999
USA	Korean	f	0.30000001
ZAF	Venda	f	2.2
PHL	Maranao	f	1.3
IND	Orija	f	3.3
IRN	Turkmenian	f	1.6
CAN	Ukrainian	f	0.60000002
KEN	Turkana	f	1.4
CHN	Tibetan	f	0.40000001
COD	Chokwe	f	1.8
MOZ	Nyanja	f	3.3
NGA	Bura	f	1.6
SDN	Lotuko	f	1.5
TZA	Gogo	f	3.9000001
UGA	Rwanda	f	3.2
RUS	Mari	f	0.40000001
USA	Vietnamese	f	0.2
ZAF	Ndebele	f	1.5
IND	Punjabi	f	2.8
CAN	Dutch	f	0.5
CHN	Puyi	f	0.2
TZA	Ha	f	3.5
RUS	Udmur	f	0.30000001
USA	Japanese	f	0.2
IND	Asami	f	1.5
CAN	Eskimo Languages	f	0.1
CHN	Dong	f	0.2
RUS	Belorussian	f	0.30000001
USA	Portuguese	f	0.2
\.


ALTER TABLE ONLY city
    ADD CONSTRAINT city_pkey PRIMARY KEY (id);

ALTER TABLE ONLY country
    ADD CONSTRAINT country_pkey PRIMARY KEY (code);

ALTER TABLE ONLY countrylanguage
    ADD CONSTRAINT countrylanguage_pkey PRIMARY KEY (countrycode, "language");

COMMIT;

ANALYZE city;
ANALYZE country;
ANALYZE countrylanguage;

-- queries with one CTE that is referenced once

-- Using CTE in the FROM clause

--query1
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 

select * from 
capitals,countrylanguage
where capitals.code = countrylanguage.countrycode and isofficial='true'
order by capitals.code,countrylanguage.language;

--query2
with lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
select lang_count,country.code,country.name,country.continent,country.region,country.population
 from country left outer join lang_total
 on (lang_total.code = country.code)
 where country.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Monarchy')
  group by country.code,countrylanguage.countrycode order by country.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country.code,country.name 
from
country,countrylanguage
where country.code=countrylanguage.countrycode group by country.code,country.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

 select diversecountries.name,city.name,diversecountries.CNT
 from diversecountries,city where city.id = diversecountries.capital;


--query5 -Using a CTE in the select list
with bigcities as
(
select city.id,city.name,city.population,city.countrycode
from city                                                                                                                                                  
where city.population >= 0.5 * (select population from country where country.code=city.countrycode)
)
select
(select max(bigcities.population) from bigcities where bigcities.countrycode='QAT') as MAX_POP,                                                           
(select avg(bigcities.population) from bigcities) AS WORLD_AVG,
 city.name,city.population
 from                                                                                                                                
 city where city.countrycode='QAT';

--query6 using CTE in the select list with a qual
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country, 
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)
select * from
(
select
(select max(CNT) from diversecountries where  diversecountries.code = country.code) CNT,country.name COUNTRY,city.name CAPITAL
from country,city where country.capital = city.id) FOO where FOO.CNT is not null;


--queries Using a CTE in the HAVING clause

with notdiversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) < 3) d
 where d.countrycode = country.code and country.gnp > 100000)

select country.name COUNTRY,city.name CAPITAL,count(*) LANGCNT from
country,city,countrylanguage
where country.code = countrylanguage.countrycode and country.capital = city.id
group by country.name,city.name
HAVING count(*) NOT IN (select CNT from notdiversecountries where notdiversecountries.name = country.name)
order by country.name
LIMIT 10;


with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Southeast Asia'
 and country.continent = 'Asia'
 
 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Eastern Asia'
 and country.continent = 'Asia'

 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Middle East'
 and country.continent = 'Asia'
 ) FOO, countrylanguage
 where FOO.code = countrylanguage.countrycode
 group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,countrylanguage.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country.code from countrylanguage,country
    where countrylanguage.countrycode=country.code
    and country.continent = 'Asia'
    and country.region = 'Southern and Central Asia'
    group by country.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital = city.id 
and country.continent = 'North America'


UNION ALL

select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital =	city.id	
and country.continent =	'South America'
) FOO,countrylanguage

where FOO.code = countrylanguage.countrycode
group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country
    where somecheapasiandiversecountries.code = country.code
    and country.gnp >= country.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY;

 
 




-- ensure select includes with clause in it's syntax

-- query 1 using the same name for the CTE as a table. Main query should reference the CTE
with country as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe')

select * from
(select * from country where isofficial='True') e1,
(select * from country where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY,e1.language LIMIT 20;

-- query 2 using multiple CTEs with same names as tables. 
with country as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe'),
countrylanguage(code1,country1,capital1,language1,isofficial1,percentage1,code2,country2,capital2,language2,isofficial2,percentage2) as
(
select * from
(select * from country where isofficial='True') e1,
(select * from country where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY,e1.language
)
select code1,country1,capital1,language1,isofficial1,percentage1,country.COUNTRY from country,countrylanguage where country.code = countrylanguage.code1
and country.percentage = countrylanguage.percentage1
order by COUNTRY,percentage1 LIMIT 20;-- queries using same name for CTEs and the subquery aliases in the main query

-- query1
with c1 as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe'),
c2 as
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Asia')

select * from
(select * from c1 where isofficial='True') c1,
(select * from c2 where percentage > 50) c2
where c1.percentage = c2.percentage order by c2.COUNTRY,c1.language;

-- query2 using same names as tables 
with country as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe'),
countrylanguage as
(select country.code,country.COUNTRY,country.language,country.isofficial,country.percentage
 FROM country,countrylanguage
 WHERE country.code = countrylanguage.countrycode
)

select * from
(select * from country where isofficial='True') country,
(select * from countrylanguage where percentage > 50) countrylanguage
where country.percentage = countrylanguage.percentage order by countrylanguage.COUNTRY,country.language LIMIT 40;
-- Using the same name for the CTE at every subquery-level 
select avg(population12),CITY12
from
(
with city(CITY1,POPULATION1) as (select city.name,city.population from city where city.population >= 100)

select CITY12,POPULATION12 from 
(
  with city(CITY2,POPULATION2) as ( select city1,population1 from city where population1 >= 1000 )
  select CITY12,POPULATION12 from 
  (
     with city(CITY3,POPULATION3) as (select city2,population2 from city where population2 >= 10000)
     select CITY12,POPULATION12 from
     (
       with city(CITY4,POPULATION4) as (select city3,population3 from  city where population3 >= 20000)
       select CITY12,POPULATION12 from
       (
        with city(CITY5,POPULATION5) as (select city4,population4 from  city where population4 >= 50000)
        select CITY12,POPULATION12 from
        (
         with city(CITY6,POPULATION6) as (select city5,population5 from  city where population5 >= 80000)
         select CITY12,POPULATION12 from
         (
          with city(CITY7,POPULATION7) as (select city6,population6 from  city where population6 >= 150000)
          select CITY12,POPULATION12 from
          (
           with city(CITY8,POPULATION8) as (select city7,population7 from  city where population7 >= 200000)
           select CITY12,POPULATION12 from
           (
            with city(CITY9,POPULATION9) as (select city8,population8 from city where population8 >= 250000)
            select CITY12,POPULATION12 from
            (
             with city(CITY10,POPULATION10) as (select city9,population9 from  city where population9 >= 300000)
             select city12,population12 from
             (
              with city(CITY11,POPULATION11) as (select city10,population10 from city where population10 >= 6500000)
              select CITY12,POPULATION12 from
              (
               with city(CITY12,POPULATION12) as (select city11,population11 from city where population11 >= 7000000)
               select s1.city12,s1.population12 from city s1,city s2
              ) FOO11
             ) FOO10
            ) FOO9
           ) FOO8
          ) FOO7
         ) FOO6
        ) FOO5
       ) FOO4
     )FOO3
  ) FOO2
) FOO1
) FOO0 group by city12 order by city12;-- negative cases where queries have duplicate names in CTEs

-- Tests for duplicate column aliases
with capitals as 
(select country.code,id,city.name,city.countrycode as code from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 
select * from capitals where id < 100;

with allofficiallanguages as 
(select countrylanguage.countrycode,city.countrycode,language from
 city,countrylanguage where countrylanguage.countrycode = city.countrycode and isofficial = 'True')
select * from allofficiallanguages where language like 'A%';

with capitals(code,id,name,code) as 
(select country.code,id,city.name,city.countrycode from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 
select * from capitals where id < 100;

-- query1 CTE referencing itself
with lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode 
  HAVING count(*) > (select max(lang_count) from lang_total)
)

select count(*) from lang_total;

--query2 CTE forward referencing another CTE
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital),

lang_total as
( select count(*) as lang_count,country.code,alleuropeanlanguages.code
  from country join alleuropeanlanguages on (country.code=alleuropeanlanguages.code and governmentform='Federal Republic')
  group by country.code,alleuropeanlanguages.code order by country.code),

alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe')

select * from alleuropeanlanguages;-- negative cases with mismatching column list provided for CTEs

--query1
with capitals(code,id) as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital)

select * from capitals;

--query 2
with lang_total(lang_count,code,countrycode,name) as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
select * from lang_total;
-- queries with CTEs using hash joins


set enable_nestloop=off;
set enable_hashjoin=on;
set enable_mergejoin=off;



--query1
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 

select * from 
capitals,countrylanguage
where capitals.code = countrylanguage.countrycode and isofficial='true'
order by capitals.code,countrylanguage.language;

--query2
with lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
select lang_count,country.code,country.name,country.continent,country.region,country.population
 from country left outer join lang_total
 on (lang_total.code = country.code)
 where country.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Monarchy')
  group by country.code,countrylanguage.countrycode order by country.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country.code,country.name 
from
country,countrylanguage
where country.code=countrylanguage.countrycode group by country.code,country.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

 select diversecountries.name,city.name,diversecountries.CNT
 from diversecountries,city where city.id = diversecountries.capital
 order by diversecountries.name;


-- query 5
with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Southeast Asia'
 and country.continent = 'Asia'
 
 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Eastern Asia'
 and country.continent = 'Asia'

 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Middle East'
 and country.continent = 'Asia'
 ) FOO, countrylanguage
 where FOO.code = countrylanguage.countrycode
 group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,countrylanguage.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country.code from countrylanguage,country
    where countrylanguage.countrycode=country.code
    and country.continent = 'Asia'
    and country.region = 'Southern and Central Asia'
    group by country.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital = city.id 
and country.continent = 'North America'


UNION ALL

select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital =	city.id	
and country.continent =	'South America'
) FOO,countrylanguage

where FOO.code = countrylanguage.countrycode
group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country
    where somecheapasiandiversecountries.code = country.code
    and country.gnp >= country.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY;


-- query 6 
 

select count(*) from
( select r.* from
  ( with fact as 
     (
      select country.name as COUNTRY,country.code,city.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from      
         (select
         sum(case when (city.population >= 0.5 * country.population) then country.population else city.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country.region
         from country,city  
         where governmentform != 'Constitutional Monarchy'
         and country.capital = city.id
         and indepyear > 0
         group by country.region) AGG1
         ,country,city
         where country.capital = city.id
         and country.region = AGG1.region
      )
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'South America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'North America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;


-- query7
with alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe')

select * from
(select * from alleuropeanlanguages where isofficial='True') e1,
(select * from alleuropeanlanguages where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY,e1.language;


-- query8

with allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select sum(FOO.CITY_CNT) REGION_CITY_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'Asia'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'North America'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > (select  max(CITY_CNT/LANG_CNT)  from allcountrystats,country where allcountrystats.code = country.code AND country.continent='Europe')
) FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region;


--query 9
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

select d1.code,d1.name,d1.capital,city.name CAPITAL_CITY,d1.CNT,d2.CNT
from
diversecountries d1 left join country
ON (d1.code = country.code AND d1.CNT < 8)
left join diversecountries d2
ON (country.code = d2.code AND d2.CNT > 8)
INNER JOIN city
ON(d1.capital = city.id)
ORDER BY d1.name;

--query 10 , multiple ctes, joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1800 and 1850

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1850 and 1900

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear > 1900
order by name
LIMIT 50;

--query 11
with allcitystats as 
( select city.name CITY,city.id,country.name COUNTRY,city.district,city.population as CITY_POP
  from
  city,country
  where city.countrycode = country.code
),
alldistrictstats as 
( select allcitystats.district,allcitystats.COUNTRY,sum(CITY_POP) DISTRICT_POP,
  count(CITY) as D_CITY_CNT
  from allcitystats
  group by allcitystats.district,allcitystats.COUNTRY
  order by district,COUNTRY
),
allcountrystats as 
( select alldistrictstats.COUNTRY,country.code,sum(D_CITY_CNT) C_CITY_CNT,
  count(distinct countrylanguage.language) C_LANG_CNT
  from alldistrictstats,country,countrylanguage
  where alldistrictstats.COUNTRY = country.name
  and country.code = countrylanguage.countrycode
  group by COUNTRY,code
),
asian_region_stats as 
(
select sum(FOO.C_CITY_CNT) REGION_CITY_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Asia') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_CNT as CITY_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_CNT) CITY_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,allcitystats.CITY CAPITAL
from allcountrystats,country,allcitystats
where allcountrystats.code = country.code
and country.capital = allcitystats.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Europe') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;

-- queries with CTEs using merge joins


set enable_nestloop=off;
set enable_hashjoin=off;
set enable_mergejoin=on;



--query1
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 

select * from 
capitals,countrylanguage
where capitals.code = countrylanguage.countrycode and isofficial='true'
order by capitals.code,countrylanguage.language;

--query2
with lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
select lang_count,country.code,country.name,country.continent,country.region,country.population
 from country left outer join lang_total
 on (lang_total.code = country.code)
 where country.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Monarchy')
  group by country.code,countrylanguage.countrycode order by country.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country.code,country.name 
from
country,countrylanguage
where country.code=countrylanguage.countrycode group by country.code,country.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

 select diversecountries.name,city.name,diversecountries.CNT
 from diversecountries,city where city.id = diversecountries.capital
 order by diversecountries.name;


-- query 5
with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Southeast Asia'
 and country.continent = 'Asia'
 
 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Eastern Asia'
 and country.continent = 'Asia'

 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Middle East'
 and country.continent = 'Asia'
 ) FOO, countrylanguage
 where FOO.code = countrylanguage.countrycode
 group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,countrylanguage.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country.code from countrylanguage,country
    where countrylanguage.countrycode=country.code
    and country.continent = 'Asia'
    and country.region = 'Southern and Central Asia'
    group by country.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital = city.id 
and country.continent = 'North America'


UNION ALL

select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital =	city.id	
and country.continent =	'South America'
) FOO,countrylanguage

where FOO.code = countrylanguage.countrycode
group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country
    where somecheapasiandiversecountries.code = country.code
    and country.gnp >= country.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY;


-- query 6 
 

select count(*) from
( select r.* from
  ( with fact as 
     (
      select country.name as COUNTRY,country.code,city.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from      
         (select
         sum(case when (city.population >= 0.5 * country.population) then country.population else city.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country.region
         from country,city  
         where governmentform != 'Constitutional Monarchy'
         and country.capital = city.id
         and indepyear > 0
         group by country.region) AGG1
         ,country,city
         where country.capital = city.id
         and country.region = AGG1.region
      )
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'South America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'North America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;


-- query7
with alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe')

select * from
(select * from alleuropeanlanguages where isofficial='True') e1,
(select * from alleuropeanlanguages where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY,e1.language;


-- query8

with allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select sum(FOO.CITY_CNT) REGION_CITY_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'Asia'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'North America'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > (select  max(CITY_CNT/LANG_CNT)  from allcountrystats,country where allcountrystats.code = country.code AND country.continent='Europe')
) FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region;


--query 9
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

select d1.code,d1.name,d1.capital,city.name CAPITAL_CITY,d1.CNT,d2.CNT
from
diversecountries d1 left join country
ON (d1.code = country.code AND d1.CNT < 8)
left join diversecountries d2
ON (country.code = d2.code AND d2.CNT > 8)
INNER JOIN city
ON(d1.capital = city.id)
ORDER BY d1.name;

--query 10 , multiple ctes, joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1800 and 1850

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1850 and 1900

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear > 1900
order by name
LIMIT 50;

--query 11
with allcitystats as 
( select city.name CITY,city.id,country.name COUNTRY,city.district,city.population as CITY_POP
  from
  city,country
  where city.countrycode = country.code
),
alldistrictstats as 
( select allcitystats.district,allcitystats.COUNTRY,sum(CITY_POP) DISTRICT_POP,
  count(CITY) as D_CITY_CNT
  from allcitystats
  group by allcitystats.district,allcitystats.COUNTRY
  order by district,COUNTRY
),
allcountrystats as 
( select alldistrictstats.COUNTRY,country.code,sum(D_CITY_CNT) C_CITY_CNT,
  count(distinct countrylanguage.language) C_LANG_CNT
  from alldistrictstats,country,countrylanguage
  where alldistrictstats.COUNTRY = country.name
  and country.code = countrylanguage.countrycode
  group by COUNTRY,code
),
asian_region_stats as 
(
select sum(FOO.C_CITY_CNT) REGION_CITY_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Asia') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_CNT as CITY_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_CNT) CITY_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,allcitystats.CITY CAPITAL
from allcountrystats,country,allcitystats
where allcountrystats.code = country.code
and country.capital = allcitystats.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Europe') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;

-- queries with a single CTE used more than once in different parts of the main query

-- query1
-- This kind of query is their only use case for CTE. We don't error, we give correct
-- results,use shared scan here and we are good!
select count(*) from
( select r.* from
  ( with fact as 
     (
      select country.name as COUNTRY,country.code,city.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from      
         (select
         sum(case when (city.population >= 0.5 * country.population) then country.population else city.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country.region
         from country,city  
         where governmentform != 'Constitutional Monarchy'
         and country.capital = city.id
         and indepyear > 0
         group by country.region) AGG1
         ,country,city
         where country.capital = city.id
         and country.region = AGG1.region
      )
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'South America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'North America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;


-- query2
with alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe')

select * from
(select * from alleuropeanlanguages where isofficial='True') e1,
(select * from alleuropeanlanguages where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY,e1.language;


-- query3

with allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select sum(FOO.CITY_CNT) REGION_CITY_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'Asia'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'North America'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > (select  max(CITY_CNT/LANG_CNT)  from allcountrystats,country where allcountrystats.code = country.code AND country.continent='Europe')
) FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region;


--query 4
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

select d1.code,d1.name,d1.capital,city.name CAPITAL_CITY,d1.CNT,d2.CNT
from
diversecountries d1 left join country
ON (d1.code = country.code AND d1.CNT < 8)
left join diversecountries d2
ON (country.code = d2.code AND d2.CNT > 8)
INNER JOIN city
ON(d1.capital = city.id)
ORDER BY d1.name;


--query 5 Use CTE more than once in select list , from clause and where clause without correlation
with official_languages as
(
 select country.code,country.name,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and isofficial = 'True'
 and country.governmentform NOT  IN (select 'Commonwealth of the US' UNION ALL select 'Monarchy (Sultanate)' UNION ALL select 'Monarchy')
 and country.gnp > (select min(gnpold) from country where country.region = 'Western Europe')
)

select 
( select max(CNT) from (select count(*) CNT,o1.name from official_languages o1, official_languages o2
  where o1.code = o2.code group by o1.name) FOO
),* from official_languages;


--query 6 Use CTE in the main query and subqueries within the main query

with bad_headofstates as 
(
 select country.code,country.name,country.headofstate,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and countrylanguage.isofficial=true
 and (country.gnp < country.gnpold or country.gnp < 3000)
)
select OUTERMOST_FOO.*,bad_headofstates.headofstate from (
select avg(population),region from
(
select FOO.*,bad_headofstates.headofstate,city.name
from
(select bad_headofstates.code,country.capital,country.region,country.population from
bad_headofstates,country where bad_headofstates.code = country.code) FOO, bad_headofstates,city
where FOO.code = bad_headofstates.code and FOO.capital = city.id) OUTER_FOO
group by region ) OUTERMOST_FOO,bad_headofstates,country 
where country.code = bad_headofstates.code and country.region = OUTERMOST_FOO.region
order by OUTERMOST_FOO.region,bad_headofstates.headofstate LIMIT 40;


-- query 7 Use CTE in the main query, where clause and having clause
with district_population as 
(select sum(city.population) DISTRICT_POP,count(*) NUM_CITIES,district,countrycode,country.name COUNTRY
 from city,country
 where city.countrycode = country.code
 group by district,countrycode,country.name
 HAVING (sum(city.population)/count(*)) > ( select avg(population) from city where countrycode = 'CHN'))

select sum(FOO.DISTRICT_POP),sum(FOO.NUM_CITIES),COUNTRY,CAPITAL,CAPITAL_POP
from
(

(select district_population.*,city.name CAPITAL,city.population CAPITAL_POP from
district_population,country,city
where district_population.countrycode = country.code AND city.id = country.capital
AND DISTRICT_POP >= ( select avg(DISTRICT_POP) FROM district_population where district IN (select district from city where countrycode = 'USA') )
order by COUNTRY,district)
UNION ALL
(select district_population.*,city.name CAPITAL,city.population CAPITAL_POP from
district_population,country,city
where district_population.countrycode = country.code AND city.id = country.capital
AND DISTRICT_POP >= ( select avg(DISTRICT_POP) FROM district_population where district IN (select district from city where countrycode = 'IND') )
order by COUNTRY,district)
UNION ALL
(select district_population.*,city.name CAPITAL,city.population CAPITAL_POP from
district_population,country,city
where district_population.countrycode = country.code AND city.id = country.capital
AND DISTRICT_POP >= ( select avg(DISTRICT_POP) FROM district_population where district IN (select district from city where countrycode = 'CHN') )
order by COUNTRY,district)

) FOO

WHERE FOO.CAPITAL_POP > (select min(DISTRICT_POP) from district_population)

group by FOO.COUNTRY,FOO.CAPITAL,FOO.CAPITAL_POP

HAVING sum(FOO.DISTRICT_POP) >= ( select avg(DISTRICT_POP) FROM district_population where district IN (select district from city where countrycode = 'AUS') )
AND (sum(FOO.DISTRICT_POP)/sum(FOO.NUM_CITIES)) <= 
( select avg(DISTRICT_POP) FROM district_population where district IN (select district from city where countrycode = 'USA' or countrycode = 'IND' or countrycode = 'CHN'))
order by FOO.country;

-- query8 Use CTE in the select list and the from clause
with official_languages as
(
 select country.code,country.name,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and isofficial = 'True'
)

select
( select max(CNT) from (select count(*) CNT from official_languages) FOO	
)
,* from official_languages order by official_languages.code,official_languages.language;

-- queries with CTEs using index scans 

set enable_seqscan=off;
set enable_indexscan=on;




--query1
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 

select * from 
capitals,countrylanguage
where capitals.code = countrylanguage.countrycode and isofficial='true'
order by capitals.code,countrylanguage.language;

--query2
with lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
select lang_count,country.code,country.name,country.continent,country.region,country.population
 from country left outer join lang_total
 on (lang_total.code = country.code)
 where country.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Monarchy')
  group by country.code,countrylanguage.countrycode order by country.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country.code,country.name 
from
country,countrylanguage
where country.code=countrylanguage.countrycode group by country.code,country.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

 select diversecountries.name,city.name,diversecountries.CNT
 from diversecountries,city where city.id = diversecountries.capital
 order by diversecountries.name;

-- some queries with merge joins and index scans
set enable_nestloop=off;
set enable_hashjoin=off;
set enable_mergejoin=on;


-- query 5
with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Southeast Asia'
 and country.continent = 'Asia'
 
 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Eastern Asia'
 and country.continent = 'Asia'

 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Middle East'
 and country.continent = 'Asia'
 ) FOO, countrylanguage
 where FOO.code = countrylanguage.countrycode
 group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,countrylanguage.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country.code from countrylanguage,country
    where countrylanguage.countrycode=country.code
    and country.continent = 'Asia'
    and country.region = 'Southern and Central Asia'
    group by country.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital = city.id 
and country.continent = 'North America'


UNION ALL

select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital =	city.id	
and country.continent =	'South America'
) FOO,countrylanguage

where FOO.code = countrylanguage.countrycode
group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country
    where somecheapasiandiversecountries.code = country.code
    and country.gnp >= country.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY;


-- query 6 
 

select count(*) from
( select r.* from
  ( with fact as 
     (
      select country.name as COUNTRY,country.code,city.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from      
         (select
         sum(case when (city.population >= 0.5 * country.population) then country.population else city.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country.region
         from country,city  
         where governmentform != 'Constitutional Monarchy'
         and country.capital = city.id
         and indepyear > 0
         group by country.region) AGG1
         ,country,city
         where country.capital = city.id
         and country.region = AGG1.region
      )
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'South America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'North America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;


-- query7
with alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe')

select * from
(select * from alleuropeanlanguages where isofficial='True') e1,
(select * from alleuropeanlanguages where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY,e1.language;


-- query8

with allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select sum(FOO.CITY_CNT) REGION_CITY_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'Asia'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'North America'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > (select  max(CITY_CNT/LANG_CNT)  from allcountrystats,country where allcountrystats.code = country.code AND country.continent='Europe')
) FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region;

-- some queries with hash joins and index scans
set enable_nestloop=off;
set enable_hashjoin=on;
set enable_mergejoin=off;


--query 9
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

select d1.code,d1.name,d1.capital,city.name CAPITAL_CITY,d1.CNT,d2.CNT
from
diversecountries d1 left join country
ON (d1.code = country.code AND d1.CNT < 8)
left join diversecountries d2
ON (country.code = d2.code AND d2.CNT > 8)
INNER JOIN city
ON(d1.capital = city.id)
ORDER BY d1.name;

--query 10 , multiple ctes, joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1800 and 1850

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1850 and 1900

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear > 1900
order by name
LIMIT 50;

--query 11
with allcitystats as 
( select city.name CITY,city.id,country.name COUNTRY,city.district,city.population as CITY_POP
  from
  city,country
  where city.countrycode = country.code
),
alldistrictstats as 
( select allcitystats.district,allcitystats.COUNTRY,sum(CITY_POP) DISTRICT_POP,
  count(CITY) as D_CITY_CNT
  from allcitystats
  group by allcitystats.district,allcitystats.COUNTRY
  order by district,COUNTRY
),
allcountrystats as 
( select alldistrictstats.COUNTRY,country.code,sum(D_CITY_CNT) C_CITY_CNT,
  count(distinct countrylanguage.language) C_LANG_CNT
  from alldistrictstats,country,countrylanguage
  where alldistrictstats.COUNTRY = country.name
  and country.code = countrylanguage.countrycode
  group by COUNTRY,code
),
asian_region_stats as 
(
select sum(FOO.C_CITY_CNT) REGION_CITY_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Asia') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_CNT as CITY_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_CNT) CITY_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,allcitystats.CITY CAPITAL
from allcountrystats,country,allcitystats
where allcountrystats.code = country.code
and country.capital = allcitystats.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Europe') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;

-- queries with CTEs using index scans on bitmap indexes
\echo --start_ignore
Drop index bitmap_city_countrycode;
Drop index bitmap_country_gf;
Drop index bitmap_country_region;
Drop index bitmap_country_continent;
Drop index bitmap_countrylanguage_countrycode;
\echo --end_ignore
create index bitmap_city_countrycode on city using bitmap(countrycode);
create index bitmap_country_gf on country using bitmap(governmentform);
create index bitmap_country_region on country using bitmap(region);
create index bitmap_country_continent on country using bitmap(continent);
create index bitmap_countrylanguage_countrycode on countrylanguage using bitmap(countrycode);



set enable_seqscan=off;
set enable_indexscan=on;




--query1
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 

select * from 
capitals,countrylanguage
where capitals.code = countrylanguage.countrycode and isofficial='true'
order by capitals.code,countrylanguage.language;

--query2
with lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
select lang_count,country.code,country.name,country.continent,country.region,country.population
 from country left outer join lang_total
 on (lang_total.code = country.code)
 where country.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Monarchy')
  group by country.code,countrylanguage.countrycode order by country.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country.code,country.name 
from
country,countrylanguage
where country.code=countrylanguage.countrycode group by country.code,country.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

 select diversecountries.name,city.name,diversecountries.CNT
 from diversecountries,city where city.id = diversecountries.capital
 order by diversecountries.name;

-- some queries with merge joins and index scans
set enable_nestloop=off;
set enable_hashjoin=off;
set enable_mergejoin=on;


-- query 5
with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Southeast Asia'
 and country.continent = 'Asia'
 
 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Eastern Asia'
 and country.continent = 'Asia'

 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Middle East'
 and country.continent = 'Asia'
 ) FOO, countrylanguage
 where FOO.code = countrylanguage.countrycode
 group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,countrylanguage.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country.code from countrylanguage,country
    where countrylanguage.countrycode=country.code
    and country.continent = 'Asia'
    and country.region = 'Southern and Central Asia'
    group by country.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital = city.id 
and country.continent = 'North America'


UNION ALL

select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital =	city.id	
and country.continent =	'South America'
) FOO,countrylanguage

where FOO.code = countrylanguage.countrycode
group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country
    where somecheapasiandiversecountries.code = country.code
    and country.gnp >= country.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY;


-- query 6 
 

select count(*) from
( select r.* from
  ( with fact as 
     (
      select country.name as COUNTRY,country.code,city.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from      
         (select
         sum(case when (city.population >= 0.5 * country.population) then country.population else city.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country.region
         from country,city  
         where governmentform != 'Constitutional Monarchy'
         and country.capital = city.id
         and indepyear > 0
         group by country.region) AGG1
         ,country,city
         where country.capital = city.id
         and country.region = AGG1.region
      )
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'South America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'North America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;


-- query8

with allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select sum(FOO.CITY_CNT) REGION_CITY_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'Asia'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'North America'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > (select  max(CITY_CNT/LANG_CNT)  from allcountrystats,country where allcountrystats.code = country.code AND country.continent='Europe')
) FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region;

-- some queries with hash joins and index scans
set enable_nestloop=off;
set enable_hashjoin=on;
set enable_mergejoin=off;


--query 9
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

select d1.code,d1.name,d1.capital,city.name CAPITAL_CITY,d1.CNT,d2.CNT
from
diversecountries d1 left join country
ON (d1.code = country.code AND d1.CNT < 8)
left join diversecountries d2
ON (country.code = d2.code AND d2.CNT > 8)
INNER JOIN city
ON(d1.capital = city.id)
ORDER BY d1.name;

--query 10 , multiple ctes, joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1800 and 1850

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1850 and 1900

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear > 1900
order by name
LIMIT 50;

--query 11
with allcitystats as 
( select city.name CITY,city.id,country.name COUNTRY,city.district,city.population as CITY_POP
  from
  city,country
  where city.countrycode = country.code
),
alldistrictstats as 
( select allcitystats.district,allcitystats.COUNTRY,sum(CITY_POP) DISTRICT_POP,
  count(CITY) as D_CITY_CNT
  from allcitystats
  group by allcitystats.district,allcitystats.COUNTRY
  order by district,COUNTRY
),
allcountrystats as 
( select alldistrictstats.COUNTRY,country.code,sum(D_CITY_CNT) C_CITY_CNT,
  count(distinct countrylanguage.language) C_LANG_CNT
  from alldistrictstats,country,countrylanguage
  where alldistrictstats.COUNTRY = country.name
  and country.code = countrylanguage.countrycode
  group by COUNTRY,code
),
asian_region_stats as 
(
select sum(FOO.C_CITY_CNT) REGION_CITY_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Asia') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_CNT as CITY_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_CNT) CITY_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,allcitystats.CITY CAPITAL
from allcountrystats,country,allcitystats
where allcountrystats.code = country.code
and country.capital = allcitystats.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Europe') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;
-- queries with CTEs using hash aggs


set enable_groupagg=off;
set enable_hashagg=on;


--query1
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital) 

select * from 
capitals,countrylanguage
where capitals.code = countrylanguage.countrycode and isofficial='true'
order by capitals.code,countrylanguage.language;

--query2
with lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
select lang_count,country.code,country.name,country.continent,country.region,country.population
 from country left outer join lang_total
 on (lang_total.code = country.code)
 where country.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Monarchy')
  group by country.code,countrylanguage.countrycode order by country.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country.code,country.name 
from
country,countrylanguage
where country.code=countrylanguage.countrycode group by country.code,country.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

 select diversecountries.name,city.name,diversecountries.CNT
 from diversecountries,city where city.id = diversecountries.capital
 order by diversecountries.name;


-- query 5
with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Southeast Asia'
 and country.continent = 'Asia'
 
 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Eastern Asia'
 and country.continent = 'Asia'

 UNION ALL

 select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
 from country,city
 where country.capital = city.id 
 and country.gnp < 10000
 and country.region = 'Middle East'
 and country.continent = 'Asia'
 ) FOO, countrylanguage
 where FOO.code = countrylanguage.countrycode
 group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,countrylanguage.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country.code from countrylanguage,country
    where countrylanguage.countrycode=country.code
    and country.continent = 'Asia'
    and country.region = 'Southern and Central Asia'
    group by country.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital = city.id 
and country.continent = 'North America'


UNION ALL

select country.code,country.name COUNTRY,city.name CAPITAL,country.headofstate
from country,city
where country.capital =	city.id	
and country.continent =	'South America'
) FOO,countrylanguage

where FOO.code = countrylanguage.countrycode
group by FOO.code,FOO.COUNTRY,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country
    where somecheapasiandiversecountries.code = country.code
    and country.gnp >= country.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY;


-- query 6 
 

select count(*) from
( select r.* from
  ( with fact as 
     (
      select country.name as COUNTRY,country.code,city.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from      
         (select
         sum(case when (city.population >= 0.5 * country.population) then country.population else city.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country.region
         from country,city  
         where governmentform != 'Constitutional Monarchy'
         and country.capital = city.id
         and indepyear > 0
         group by country.region) AGG1
         ,country,city
         where country.capital = city.id
         and country.region = AGG1.region
      )
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'South America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'North America'
     
     UNION ALL
     
     select code,COUNTRY,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage
     where fact.code = countrylanguage.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;


-- query7
with alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe')

select * from
(select * from alleuropeanlanguages where isofficial='True') e1,
(select * from alleuropeanlanguages where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY,e1.language;


-- query8

with allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select sum(FOO.CITY_CNT) REGION_CITY_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'Asia'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > 1
and country.continent = 'North America'

UNION ALL

select allcountrystats.code,allcountrystats.name COUNTRY,CITY_CNT,LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and CITY_CNT/LANG_CNT > (select  max(CITY_CNT/LANG_CNT)  from allcountrystats,country where allcountrystats.code = country.code AND country.continent='Europe')
) FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region;


--query 9
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

select d1.code,d1.name,d1.capital,city.name CAPITAL_CITY,d1.CNT,d2.CNT
from
diversecountries d1 left join country
ON (d1.code = country.code AND d1.CNT < 8)
left join diversecountries d2
ON (country.code = d2.code AND d2.CNT > 8)
INNER JOIN city
ON(d1.capital = city.id)
ORDER BY d1.name;

--query 10 , multiple ctes, joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1800 and 1850

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1850 and 1900

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear > 1900
order by name
LIMIT 50;

--query 11
with allcitystats as 
( select city.name CITY,city.id,country.name COUNTRY,city.district,city.population as CITY_POP
  from
  city,country
  where city.countrycode = country.code
),
alldistrictstats as 
( select allcitystats.district,allcitystats.COUNTRY,sum(CITY_POP) DISTRICT_POP,
  count(CITY) as D_CITY_CNT
  from allcitystats
  group by allcitystats.district,allcitystats.COUNTRY
  order by district,COUNTRY
),
allcountrystats as 
( select alldistrictstats.COUNTRY,country.code,sum(D_CITY_CNT) C_CITY_CNT,
  count(distinct countrylanguage.language) C_LANG_CNT
  from alldistrictstats,country,countrylanguage
  where alldistrictstats.COUNTRY = country.name
  and country.code = countrylanguage.countrycode
  group by COUNTRY,code
),
asian_region_stats as 
(
select sum(FOO.C_CITY_CNT) REGION_CITY_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Asia') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_CNT as CITY_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_CNT) CITY_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,allcitystats.CITY CAPITAL
from allcountrystats,country,allcitystats
where allcountrystats.code = country.code
and country.capital = allcitystats.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Europe') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;

-- queries with CTEs on AO tables

DROP TABLE IF EXISTS CITY_AO;

CREATE TABLE CITY_AO (
    id integer NOT NULL,
    name text NOT NULL,
    countrycode character(3) NOT NULL,
    district text NOT NULL,
    population integer NOT NULL
) with (appendonly=true) distributed by(id);


DROP TABLE IF EXISTS country_ao;

CREATE TABLE country_ao (
    code character(3) NOT NULL,
    name text NOT NULL,
    continent text NOT NULL,
    region text NOT NULL,
    surfacearea numeric(10,2) NOT NULL,
    indepyear smallint,
    population integer NOT NULL,
    lifeexpectancy real,
    gnp numeric(10,2),
    gnpold numeric(10,2),
    localname text NOT NULL,
    governmentform text NOT NULL,
    headofstate text,
    capital integer,
    code2 character(2) NOT NULL
) with (appendonly=true) distributed by (code);

DROP TABLE IF EXISTS countrylanguage_ao;

CREATE TABLE countrylanguage_ao (
    countrycode character(3) NOT NULL,
    "language" text NOT NULL,
    isofficial boolean NOT NULL,
    percentage real NOT NULL
) with (appendonly=true) distributed by (countrycode,language);

create index bitmap_city_ao_countrycode on city_ao using bitmap(countrycode);
create index bitmap_country_ao_gf on country_ao using bitmap(governmentform);
create index bitmap_country_ao_region on country_ao using bitmap(region);
create index bitmap_country_ao_continent on country_ao using bitmap(continent);
create index bitmap_countrylanguage_ao_countrycode on countrylanguage_ao using bitmap(countrycode);

INSERT INTO CITY_AO SELECT * FROM CITY;
INSERT INTO COUNTRY_AO SELECT * FROM COUNTRY;
INSERT INTO COUNTRYLANGUAGE_AO SELECT * FROM COUNTRYLANGUAGE;

ANALYZE CITY_AO;
ANALYZE COUNTRY_AO;
ANALYZE COUNTRYLANGUAGE_AO;

set enable_seqscan=off;
set enable_indexscan=on;



--query1
with capitals as 
(select country_ao.code,id,city_ao.name from city_ao,country_ao 
 where city_ao.countrycode = country_ao.code AND city_ao.id = country_ao.capital) 

select * from 
capitals,countrylanguage_ao
where capitals.code = countrylanguage_ao.countrycode and isofficial='true'
order by capitals.code,countrylanguage_ao.language;

--query2
with lang_total as
( select count(*) as lang_count,country_ao.code,countrylanguage_ao.countrycode
  from country_ao join countrylanguage_ao on (country_ao.code=countrylanguage_ao.countrycode and governmentform='Federal Republic')
  group by country_ao.code,countrylanguage_ao.countrycode order by country_ao.code)
 
select lang_count,country_ao.code,country_ao.name,country_ao.continent,country_ao.region,country_ao.population
 from country_ao left outer join lang_total
 on (lang_total.code = country_ao.code)
 where country_ao.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country_ao.code,countrylanguage_ao.countrycode
  from country_ao join countrylanguage_ao on (country_ao.code=countrylanguage_ao.countrycode and governmentform='Federal Republic')
  group by country_ao.code,countrylanguage_ao.countrycode order by country_ao.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country_ao.code,countrylanguage_ao.countrycode
  from country_ao join countrylanguage_ao on (country_ao.code=countrylanguage_ao.countrycode and governmentform='Monarchy')
  group by country_ao.code,countrylanguage_ao.countrycode order by country_ao.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country_ao.code,country_ao.name 
from
country_ao,countrylanguage_ao
where country_ao.code=countrylanguage_ao.countrycode group by country_ao.code,country_ao.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country_ao.code,country_ao.name,country_ao.capital,d.CNT
 from country_ao,
 (select countrylanguage_ao.countrycode,count(*) as CNT from countrylanguage_ao group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country_ao.code and country_ao.gnp > 100000)

 select diversecountries.name,city_ao.name,diversecountries.CNT
 from diversecountries,city_ao where city_ao.id = diversecountries.capital
 order by diversecountries.name;

-- some queries with merge joins and index scans
set enable_nestloop=off;
set enable_hashjoin=off;
set enable_mergejoin=on;


-- query 5
with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY_AO,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country_ao.code,country_ao.name COUNTRY_AO,city_ao.name CAPITAL,country_ao.headofstate
 from country_ao,city_ao
 where country_ao.capital = city_ao.id 
 and country_ao.gnp < 10000
 and country_ao.region = 'Southeast Asia'
 and country_ao.continent = 'Asia'
 
 UNION ALL

 select country_ao.code,country_ao.name COUNTRY_AO,city_ao.name CAPITAL,country_ao.headofstate
 from country_ao,city_ao
 where country_ao.capital = city_ao.id 
 and country_ao.gnp < 10000
 and country_ao.region = 'Eastern Asia'
 and country_ao.continent = 'Asia'

 UNION ALL

 select country_ao.code,country_ao.name COUNTRY_AO,city_ao.name CAPITAL,country_ao.headofstate
 from country_ao,city_ao
 where country_ao.capital = city_ao.id 
 and country_ao.gnp < 10000
 and country_ao.region = 'Middle East'
 and country_ao.continent = 'Asia'
 ) FOO, countrylanguage_ao
 where FOO.code = countrylanguage_ao.countrycode
 group by FOO.code,FOO.COUNTRY_AO,FOO.CAPITAL,FOO.headofstate,countrylanguage_ao.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country_ao.code from countrylanguage_ao,country_ao
    where countrylanguage_ao.countrycode=country_ao.code
    and country_ao.continent = 'Asia'
    and country_ao.region = 'Southern and Central Asia'
    group by country_ao.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY_AO,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country_ao.code,country_ao.name COUNTRY_AO,city_ao.name CAPITAL,country_ao.headofstate
from country_ao,city_ao
where country_ao.capital = city_ao.id 
and country_ao.continent = 'North America'


UNION ALL

select country_ao.code,country_ao.name COUNTRY_AO,city_ao.name CAPITAL,country_ao.headofstate
from country_ao,city_ao
where country_ao.capital =	city_ao.id	
and country_ao.continent =	'South America'
) FOO,countrylanguage_ao

where FOO.code = countrylanguage_ao.countrycode
group by FOO.code,FOO.COUNTRY_AO,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country_ao
    where somecheapasiandiversecountries.code = country_ao.code
    and country_ao.gnp >= country_ao.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY_AO;


-- query 6 
 

select count(*) from
( select r.* from
  ( with fact as 
     (
      select country_ao.name as COUNTRY_AO,country_ao.code,city_ao.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from      
         (select
         sum(case when (city_ao.population >= 0.5 * country_ao.population) then country_ao.population else city_ao.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country_ao.region
         from country_ao,city_ao  
         where governmentform != 'Constitutional Monarchy'
         and country_ao.capital = city_ao.id
         and indepyear > 0
         group by country_ao.region) AGG1
         ,country_ao,city_ao
         where country_ao.capital = city_ao.id
         and country_ao.region = AGG1.region
      )
     
     select code,COUNTRY_AO,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage_ao
     where fact.code = countrylanguage_ao.countrycode and isofficial = 'True'
     and fact.region = 'South America'
     
     UNION ALL
     
     select code,COUNTRY_AO,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage_ao
     where fact.code = countrylanguage_ao.countrycode and isofficial = 'True'
     and fact.region = 'North America'
     
     UNION ALL
     
     select code,COUNTRY_AO,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage_ao
     where fact.code = countrylanguage_ao.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;


-- query7
with alleuropeanlanguages as 
(select country_ao.code,country_ao.name COUNTRY_AO, city_ao.name CAPITAL, language, isofficial, percentage
 FROM country_ao,city_ao,countrylanguage_ao
 WHERE country_ao.code = countrylanguage_ao.countrycode
 and country_ao.capital = city_ao.id
 and country_ao.continent = 'Europe')

select * from
(select * from alleuropeanlanguages where isofficial='True') e1,
(select * from alleuropeanlanguages where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY_AO,e1.language;


-- query8

with allcountry_aostats as 
( select country_ao.code,country_ao.name,count(distinct city_ao.id) CITY_AO_CNT,
  count(distinct countrylanguage_ao.language) LANG_CNT
  from country_ao,city_ao,countrylanguage_ao
  where country_ao.code = city_ao.countrycode
  and country_ao.code = countrylanguage_ao.countrycode
  group by country_ao.code,country_ao.name
)

select sum(FOO.CITY_AO_CNT) REGION_CITY_AO_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountry_aostats.code,allcountry_aostats.name COUNTRY_AO,CITY_AO_CNT,LANG_CNT,country_ao.region,city_ao.name CAPITAL
from allcountry_aostats,country_ao,city_ao
where allcountry_aostats.code = country_ao.code
and country_ao.capital = city_ao.id
and CITY_AO_CNT/LANG_CNT > 1
and country_ao.continent = 'Asia'

UNION ALL

select allcountry_aostats.code,allcountry_aostats.name COUNTRY_AO,CITY_AO_CNT,LANG_CNT,country_ao.region,city_ao.name CAPITAL
from allcountry_aostats,country_ao,city_ao
where allcountry_aostats.code = country_ao.code
and country_ao.capital = city_ao.id
and CITY_AO_CNT/LANG_CNT > 1
and country_ao.continent = 'North America'

UNION ALL

select allcountry_aostats.code,allcountry_aostats.name COUNTRY_AO,CITY_AO_CNT,LANG_CNT,country_ao.region,city_ao.name CAPITAL
from allcountry_aostats,country_ao,city_ao
where allcountry_aostats.code = country_ao.code
and country_ao.capital = city_ao.id
and CITY_AO_CNT/LANG_CNT > (select  max(CITY_AO_CNT/LANG_CNT)  from allcountry_aostats,country_ao where allcountry_aostats.code = country_ao.code AND country_ao.continent='Europe')
) FOO
,allcountry_aostats,country_ao

WHERE allcountry_aostats.code = country_ao.code
and FOO.region = country_ao.region
group by FOO.region order by FOO.region;

-- some queries with hash joins and index scans
set enable_nestloop=off;
set enable_hashjoin=on;
set enable_mergejoin=off;


--query 9
with diversecountries as
(select country_ao.code,country_ao.name,country_ao.capital,d.CNT
 from country_ao,
 (select countrylanguage_ao.countrycode,count(*) as CNT from countrylanguage_ao group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country_ao.code and country_ao.gnp > 100000)

select d1.code,d1.name,d1.capital,city_ao.name CAPITAL_CITY_AO,d1.CNT,d2.CNT
from
diversecountries d1 left join country_ao
ON (d1.code = country_ao.code AND d1.CNT < 8)
left join diversecountries d2
ON (country_ao.code = d2.code AND d2.CNT > 8)
INNER JOIN city_ao
ON(d1.capital = city_ao.id)
ORDER BY d1.name;

--query 10 , multiple ctes, joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country_ao
     group by region
    ) FOO,countrylanguage_ao,country_ao
where
   country_ao.code = countrylanguage_ao.countrycode
   and FOO.region = country_ao.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country_ao
     group by region
    ) FOO,countrylanguage_ao,country_ao
where
   country_ao.code = countrylanguage_ao.countrycode
   and FOO.region = country_ao.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountry_aostats as 
( select country_ao.code,country_ao.name,count(distinct city_ao.id) CITY_AO_CNT,
  count(distinct countrylanguage_ao.language) LANG_CNT
  from country_ao,city_ao,countrylanguage_ao
  where country_ao.code = city_ao.countrycode
  and country_ao.code = countrylanguage_ao.countrycode
  group by country_ao.code,country_ao.name
)

select allcountry_aostats.CITY_AO_CNT,allcountry_aostats.LANG_CNT,allcountry_aostats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountry_aostats,country_ao
where longlivingregions.region = denseregions.region and allcountry_aostats.code = country_ao.code and country_ao.region = longlivingregions.region
and country_ao.indepyear between 1800 and 1850

UNION ALL

select allcountry_aostats.CITY_AO_CNT,allcountry_aostats.LANG_CNT,allcountry_aostats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountry_aostats,country_ao
where longlivingregions.region = denseregions.region and allcountry_aostats.code = country_ao.code and country_ao.region = longlivingregions.region
and country_ao.indepyear between 1850 and 1900

UNION ALL

select allcountry_aostats.CITY_AO_CNT,allcountry_aostats.LANG_CNT,allcountry_aostats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountry_aostats,country_ao
where longlivingregions.region = denseregions.region and allcountry_aostats.code = country_ao.code and country_ao.region = longlivingregions.region
and country_ao.indepyear > 1900
order by name
LIMIT 50;

--query 11
with allcity_aostats as 
( select city_ao.name CITY_AO,city_ao.id,country_ao.name COUNTRY_AO,city_ao.district,city_ao.population as CITY_AO_POP
  from
  city_ao,country_ao
  where city_ao.countrycode = country_ao.code
),
alldistrictstats as 
( select allcity_aostats.district,allcity_aostats.COUNTRY_AO,sum(CITY_AO_POP) DISTRICT_POP,
  count(CITY_AO) as D_CITY_AO_CNT
  from allcity_aostats
  group by allcity_aostats.district,allcity_aostats.COUNTRY_AO
  order by district,COUNTRY_AO
),
allcountry_aostats as 
( select alldistrictstats.COUNTRY_AO,country_ao.code,sum(D_CITY_AO_CNT) C_CITY_AO_CNT,
  count(distinct countrylanguage_ao.language) C_LANG_CNT
  from alldistrictstats,country_ao,countrylanguage_ao
  where alldistrictstats.COUNTRY_AO = country_ao.name
  and country_ao.code = countrylanguage_ao.countrycode
  group by COUNTRY_AO,code
),
asian_region_stats as 
(
select sum(FOO.C_CITY_AO_CNT) REGION_CITY_AO_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountry_aostats.code,allcountry_aostats.COUNTRY_AO,C_CITY_AO_CNT,C_LANG_CNT,country_ao.region,city_ao.name CAPITAL
from allcountry_aostats,country_ao,city_ao
where allcountry_aostats.code = country_ao.code
and country_ao.capital = city_ao.id
and C_CITY_AO_CNT/C_LANG_CNT > 1
and country_ao.continent = 'Asia') FOO
,allcountry_aostats,country_ao

WHERE allcountry_aostats.code = country_ao.code
and FOO.region = country_ao.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_AO_CNT as CITY_AO_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_AO_CNT) CITY_AO_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountry_aostats.code,allcountry_aostats.COUNTRY_AO,C_CITY_AO_CNT,C_LANG_CNT,country_ao.region,allcity_aostats.CITY_AO CAPITAL
from allcountry_aostats,country_ao,allcity_aostats
where allcountry_aostats.code = country_ao.code
and country_ao.capital = allcity_aostats.id
and C_CITY_AO_CNT/C_LANG_CNT > 1
and country_ao.continent = 'Europe') FOO
,allcountry_aostats,country_ao

WHERE allcountry_aostats.code = country_ao.code
and FOO.region = country_ao.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;

-- queries with CTEs on CO tables

DROP TABLE IF EXISTS CITY_CO;

CREATE TABLE CITY_CO (
    id integer NOT NULL,
    name text NOT NULL,
    countrycode character(3) NOT NULL,
    district text NOT NULL,
    population integer NOT NULL
) with (appendonly=true,orientation=column) distributed by(id);


DROP TABLE IF EXISTS country_co;

CREATE TABLE country_co (
    code character(3) NOT NULL,
    name text NOT NULL,
    continent text NOT NULL,
    region text NOT NULL,
    surfacearea numeric(10,2) NOT NULL,
    indepyear smallint,
    population integer NOT NULL,
    lifeexpectancy real,
    gnp numeric(10,2),
    gnpold numeric(10,2),
    localname text NOT NULL,
    governmentform text NOT NULL,
    headofstate text,
    capital integer,
    code2 character(2) NOT NULL
) with (appendonly=true,orientation=column) distributed by (code);

DROP TABLE IF EXISTS countrylanguage_co;

CREATE TABLE countrylanguage_co (
    countrycode character(3) NOT NULL,
    "language" text NOT NULL,
    isofficial boolean NOT NULL,
    percentage real NOT NULL
) with (appendonly=true,orientation=column) distributed by (countrycode,language);

create index bitmap_city_co_countrycode on city_co using bitmap(countrycode);
create index bitmap_country_co_gf on country_co using bitmap(governmentform);
create index bitmap_country_co_region on country_co using bitmap(region);
create index bitmap_country_co_continent on country_co using bitmap(continent);
create index bitmap_countrylanguage_co_countrycode on countrylanguage_co using bitmap(countrycode);

INSERT INTO CITY_CO SELECT * FROM CITY;
INSERT INTO COUNTRY_CO SELECT * FROM COUNTRY;
INSERT INTO COUNTRYLANGUAGE_CO SELECT * FROM COUNTRYLANGUAGE;

ANALYZE CITY_CO;
ANALYZE COUNTRY_CO;
ANALYZE COUNTRYLANGUAGE_CO;

set enable_seqscan=off;
set enable_indexscan=on;

--query1
with capitals as
(select country_co.code,id,city_co.name from city_co,country_co
 where city_co.countrycode = country_co.code AND city_co.id = country_co.capital)
select * from
capitals,countrylanguage_co
where capitals.code = countrylanguage_co.countrycode and isofficial='true'
order by capitals.code,countrylanguage_co.language;

--query2
with lang_total as
( select count(*) as lang_count,country_co.code,countrylanguage_co.countrycode
  from country_co join countrylanguage_co on (country_co.code=countrylanguage_co.countrycode and governmentform='Federal Republic')
  group by country_co.code,countrylanguage_co.countrycode order by country_co.code)
 
select lang_count,country_co.code,country_co.name,country_co.continent,country_co.region,country_co.population
 from country_co left outer join lang_total
 on (lang_total.code = country_co.code)
 where country_co.indepyear > 1970 and lang_total.lang_count >=1 and lang_total.lang_count >=1
  order by lang_total.lang_count desc;


-- Using CTE in the WHERE clause

--query3
with lang_total as
( select lang_count,countrycode from
  (
  (
   select count(*) as lang_count,country_co.code,countrylanguage_co.countrycode
  from country_co join countrylanguage_co on (country_co.code=countrylanguage_co.countrycode and governmentform='Federal Republic')
  group by country_co.code,countrylanguage_co.countrycode order by country_co.code)
 
   UNION ALL
 
  (
   select count(*) as lang_count,country_co.code,countrylanguage_co.countrycode
  from country_co join countrylanguage_co on (country_co.code=countrylanguage_co.countrycode and governmentform='Monarchy')
  group by country_co.code,countrylanguage_co.countrycode order by country_co.code)
 
 ) FOO1
)
select * from
(
select count(*) as cnt,country_co.code,country_co.name 
from
country_co,countrylanguage_co
where country_co.code=countrylanguage_co.countrycode group by country_co.code,country_co.name) AS FOO
where foo.cnt = (select max(lang_count) from lang_total) order by foo.code;

--query4
with diversecountries as
(select country_co.code,country_co.name,country_co.capital,d.CNT
 from country_co,
 (select countrylanguage_co.countrycode,count(*) as CNT from countrylanguage_co group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country_co.code and country_co.gnp > 100000)

 select diversecountries.name,city_co.name,diversecountries.CNT
 from diversecountries,city_co where city_co.id = diversecountries.capital
 order by diversecountries.name;

-- some queries with merge joins and index scans
set enable_nestloop=off;
set enable_hashjoin=off;
set enable_mergejoin=on;


-- query 5
with somecheapasiandiversecountries as
(
 select FOO.code,FOO.COUNTRY_CO,FOO.CAPITAL,FOO.headofstate,count(*) ASIAN_COUNT from
 (
 select country_co.code,country_co.name COUNTRY_CO,city_co.name CAPITAL,country_co.headofstate
 from country_co,city_co
 where country_co.capital = city_co.id 
 and country_co.gnp < 10000
 and country_co.region = 'Southeast Asia'
 and country_co.continent = 'Asia'
 
 UNION ALL

 select country_co.code,country_co.name COUNTRY_CO,city_co.name CAPITAL,country_co.headofstate
 from country_co,city_co
 where country_co.capital = city_co.id 
 and country_co.gnp < 10000
 and country_co.region = 'Eastern Asia'
 and country_co.continent = 'Asia'

 UNION ALL

 select country_co.code,country_co.name COUNTRY_CO,city_co.name CAPITAL,country_co.headofstate
 from country_co,city_co
 where country_co.capital = city_co.id 
 and country_co.gnp < 10000
 and country_co.region = 'Middle East'
 and country_co.continent = 'Asia'
 ) FOO, countrylanguage_co
 where FOO.code = countrylanguage_co.countrycode
 group by FOO.code,FOO.COUNTRY_CO,FOO.CAPITAL,FOO.headofstate,countrylanguage_co.countrycode
 HAVING count(*) >=
 (select min(CNT) FROM
   (select count(*) CNT,country_co.code from countrylanguage_co,country_co
    where countrylanguage_co.countrycode=country_co.code
    and country_co.continent = 'Asia'
    and country_co.region = 'Southern and Central Asia'
    group by country_co.code
   ) FOO1
 )
)

select FOO.code,FOO.COUNTRY_CO,FOO.CAPITAL,FOO.headofstate,count(*) COMPARED_WITH_CHEAP_ASIAN_CNT
from
(
select country_co.code,country_co.name COUNTRY_CO,city_co.name CAPITAL,country_co.headofstate
from country_co,city_co
where country_co.capital = city_co.id 
and country_co.continent = 'North America'


UNION ALL

select country_co.code,country_co.name COUNTRY_CO,city_co.name CAPITAL,country_co.headofstate
from country_co,city_co
where country_co.capital =	city_co.id	
and country_co.continent =	'South America'
) FOO,countrylanguage_co

where FOO.code = countrylanguage_co.countrycode
group by FOO.code,FOO.COUNTRY_CO,FOO.CAPITAL,FOO.headofstate

HAVING count(*)  >=
 (select min(ASIAN_COUNT) FROM
   (select ASIAN_COUNT FROM somecheapasiandiversecountries,country_co
    where somecheapasiandiversecountries.code = country_co.code
    and country_co.gnp >= country_co.gnpold
   ) ASIANCOUNT
 )
order by COUNTRY_CO;

-- query 6
select count(*) from
( select r.* from
  ( with fact as
     (
      select country_co.name as COUNTRY_CO,country_co.code,city_co.name as CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,AGG1.region
      from
         (select
         sum(case when (city_co.population >= 0.5 * country_co.population) then country_co.population else city_co.population end) as S_POPULATION,
         sum(case when (gnp >= gnpold) then gnp else gnpold end) as S_GNP,
         avg(case when (lifeexpectancy > 60) then 50 else lifeexpectancy end) as AVG_LIFE,country_co.region
         from country_co,city_co
         where governmentform != 'Constitutional Monarchy'
         and country_co.capital = city_co.id
         and indepyear > 0
         group by country_co.region) AGG1
         ,country_co,city_co
         where country_co.capital = city_co.id
         and country_co.region = AGG1.region
      )

     select code,COUNTRY_CO,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage_co
     where fact.code = countrylanguage_co.countrycode and isofficial = 'True'
     and fact.region = 'South America'

     UNION ALL

     select code,COUNTRY_CO,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage_co
     where fact.code = countrylanguage_co.countrycode and isofficial = 'True'
     and fact.region = 'North America'

     UNION ALL

     select code,COUNTRY_CO,CAPITAL,S_POPULATION,S_GNP,AVG_LIFE,language as OFFICIALLANGUAGE,region
     from fact,countrylanguage_co
     where fact.code = countrylanguage_co.countrycode and isofficial = 'True'
     and fact.region = 'Caribbean'
 ) as r
 left join
  (
   select 'ARG' as CODE UNION ALL
   select 'BOL' as CODE UNION ALL
   select 'BRA' as CODE UNION ALL
   select 'PER' as CODE UNION ALL
   select 'URY' as CODE UNION ALL
   select 'IND' as CODE  UNION ALL
   select 'LCA' as CODE UNION ALL
   select 'VCT' as CODE
   ) as r1
on r.code = r1.code) AS FOO;

-- query7
with alleuropeanlanguages as 
(select country_co.code,country_co.name COUNTRY_CO, city_co.name CAPITAL, language, isofficial, percentage
 FROM country_co,city_co,countrylanguage_co
 WHERE country_co.code = countrylanguage_co.countrycode
 and country_co.capital = city_co.id
 and country_co.continent = 'Europe')

select * from
(select * from alleuropeanlanguages where isofficial='True') e1,
(select * from alleuropeanlanguages where percentage > 50) e2
where e1.code = e2.code order by e2.COUNTRY_CO,e1.language;


-- query8

with allcountry_costats as 
( select country_co.code,country_co.name,count(distinct city_co.id) CITY_CO_CNT,
  count(distinct countrylanguage_co.language) LANG_CNT
  from country_co,city_co,countrylanguage_co
  where country_co.code = city_co.countrycode
  and country_co.code = countrylanguage_co.countrycode
  group by country_co.code,country_co.name
)

select sum(FOO.CITY_CO_CNT) REGION_CITY_CO_CNT,sum(FOO.LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountry_costats.code,allcountry_costats.name COUNTRY_CO,CITY_CO_CNT,LANG_CNT,country_co.region,city_co.name CAPITAL
from allcountry_costats,country_co,city_co
where allcountry_costats.code = country_co.code
and country_co.capital = city_co.id
and CITY_CO_CNT/LANG_CNT > 1
and country_co.continent = 'Asia'

UNION ALL

select allcountry_costats.code,allcountry_costats.name COUNTRY_CO,CITY_CO_CNT,LANG_CNT,country_co.region,city_co.name CAPITAL
from allcountry_costats,country_co,city_co
where allcountry_costats.code = country_co.code
and country_co.capital = city_co.id
and CITY_CO_CNT/LANG_CNT > 1
and country_co.continent = 'North America'

UNION ALL

select allcountry_costats.code,allcountry_costats.name COUNTRY_CO,CITY_CO_CNT,LANG_CNT,country_co.region,city_co.name CAPITAL
from allcountry_costats,country_co,city_co
where allcountry_costats.code = country_co.code
and country_co.capital = city_co.id
and CITY_CO_CNT/LANG_CNT > (select  max(CITY_CO_CNT/LANG_CNT)  from allcountry_costats,country_co where allcountry_costats.code = country_co.code AND country_co.continent='Europe')
) FOO
,allcountry_costats,country_co

WHERE allcountry_costats.code = country_co.code
and FOO.region = country_co.region
group by FOO.region order by FOO.region;

-- some queries with hash joins and index scans
set enable_nestloop=off;
set enable_hashjoin=on;
set enable_mergejoin=off;


--query 9
with diversecountries as
(select country_co.code,country_co.name,country_co.capital,d.CNT
 from country_co,
 (select countrylanguage_co.countrycode,count(*) as CNT from countrylanguage_co group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country_co.code and country_co.gnp > 100000)

select d1.code,d1.name,d1.capital,city_co.name CAPITAL_CITY_CO,d1.CNT,d2.CNT
from
diversecountries d1 left join country_co
ON (d1.code = country_co.code AND d1.CNT < 8)
left join diversecountries d2
ON (country_co.code = d2.code AND d2.CNT > 8)
INNER JOIN city_co
ON(d1.capital = city_co.id)
ORDER BY d1.name;

--query 10 , multiple ctes, joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country_co
     group by region
    ) FOO,countrylanguage_co,country_co
where
   country_co.code = countrylanguage_co.countrycode
   and FOO.region = country_co.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country_co
     group by region
    ) FOO,countrylanguage_co,country_co
where
   country_co.code = countrylanguage_co.countrycode
   and FOO.region = country_co.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountry_costats as 
( select country_co.code,country_co.name,count(distinct city_co.id) CITY_CO_CNT,
  count(distinct countrylanguage_co.language) LANG_CNT
  from country_co,city_co,countrylanguage_co
  where country_co.code = city_co.countrycode
  and country_co.code = countrylanguage_co.countrycode
  group by country_co.code,country_co.name
)

select allcountry_costats.CITY_CO_CNT,allcountry_costats.LANG_CNT,allcountry_costats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountry_costats,country_co
where longlivingregions.region = denseregions.region and allcountry_costats.code = country_co.code and country_co.region = longlivingregions.region
and country_co.indepyear between 1800 and 1850

UNION ALL

select allcountry_costats.CITY_CO_CNT,allcountry_costats.LANG_CNT,allcountry_costats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountry_costats,country_co
where longlivingregions.region = denseregions.region and allcountry_costats.code = country_co.code and country_co.region = longlivingregions.region
and country_co.indepyear between 1850 and 1900

UNION ALL

select allcountry_costats.CITY_CO_CNT,allcountry_costats.LANG_CNT,allcountry_costats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountry_costats,country_co
where longlivingregions.region = denseregions.region and allcountry_costats.code = country_co.code and country_co.region = longlivingregions.region
and country_co.indepyear > 1900
order by name
LIMIT 50;

--query 11
with allcity_costats as
( select city_co.name CITY_CO,city_co.id,country_co.name COUNTRY_CO,city_co.district,city_co.population as CITY_CO_POP
  from
  city_co,country_co
  where city_co.countrycode = country_co.code
),
alldistrictstats as
( select allcity_costats.district,allcity_costats.COUNTRY_CO,sum(CITY_CO_POP) DISTRICT_POP,
  count(CITY_CO) as D_CITY_CO_CNT
  from allcity_costats
  group by allcity_costats.district,allcity_costats.COUNTRY_CO
  order by district,COUNTRY_CO
),
allcountry_costats as
( select alldistrictstats.COUNTRY_CO,country_co.code,sum(D_CITY_CO_CNT) C_CITY_CO_CNT,
  count(distinct countrylanguage_co.language) C_LANG_CNT
  from alldistrictstats,country_co,countrylanguage_co
  where alldistrictstats.COUNTRY_CO = country_co.name
  and country_co.code = countrylanguage_co.countrycode
  group by COUNTRY_CO,code
),
asian_region_stats as
(
select sum(FOO.C_CITY_CO_CNT) REGION_CITY_CO_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountry_costats.code,allcountry_costats.COUNTRY_CO,C_CITY_CO_CNT,C_LANG_CNT,country_co.region,city_co.name CAPITAL
from allcountry_costats,country_co,city_co
where allcountry_costats.code = country_co.code
and country_co.capital = city_co.id
and C_CITY_CO_CNT/C_LANG_CNT > 1
and country_co.continent = 'Asia') FOO
,allcountry_costats,country_co

WHERE allcountry_costats.code = country_co.code
and FOO.region = country_co.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_CO_CNT as CITY_CO_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_CO_CNT) CITY_CO_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountry_costats.code,allcountry_costats.COUNTRY_CO,C_CITY_CO_CNT,C_LANG_CNT,country_co.region,allcity_costats.CITY_CO CAPITAL
from allcountry_costats,country_co,allcity_costats
where allcountry_costats.code = country_co.code
and country_co.capital = allcity_costats.id
and C_CITY_CO_CNT/C_LANG_CNT > 1
and country_co.continent = 'Europe') FOO
,allcountry_costats,country_co

WHERE allcountry_costats.code = country_co.code
and FOO.region = country_co.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;

-- Queries using multiple CTEs

-- query1 - all CTEs being used once in the main query
with capitals as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital),
lang_total as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code),
alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe'),
diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000)

select capitals.name CAPITAL,lang_total.lang_count COUNTRY_LANG_COUNT,capitals.code,country.name
from capitals,lang_total,country
where capitals.code = lang_total.countrycode
and capitals.code = country.code
and country.code NOT IN (select diversecountries.code from diversecountries,alleuropeanlanguages
                         where diversecountries.code = alleuropeanlanguages.code)
order by capitals.code;

-- query 2 multiple CTEs being used multiple times through joins
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1800 and 1850

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1850 and 1900

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear > 1900
order by name
LIMIT 50;

       


-- Queries with multiple CTEs referencing one another

-- query1 
with city_official_language as
(select city.id,city.name CITY,country.name COUNTRY,countrylanguage.language,city.population,country.capital 
 from city,countrylanguage,country
 where city.countrycode = country.code
 and country.code = countrylanguage.countrycode
 and countrylanguage.isofficial = 'True'
),
capital_official_language as 
(select c2.CITY, c1.COUNTRY,c1.language OFFICIAL_LANGUAGE,c1.CITY CAPITAL
 from city_official_language c1 , city_official_language c2 
 where c1.id = c2.capital
 and c1.id != c2.id
),
alleuropeanlanguages as 
(select c.COUNTRY,c.CITY,c.CAPITAL,c.OFFICIAL_LANGUAGE
 from capital_official_language c, country
 where c.COUNTRY = country.name 
 and country.continent = 'Europe'
)

select code,COUNTRY,CITY,alleuropeanlanguages.CAPITAL,OFFICIAL_LANGUAGE from alleuropeanlanguages,country
where alleuropeanlanguages.COUNTRY = country.name
and alleuropeanlanguages.city in (select CITY from city_official_language)
and alleuropeanlanguages.OFFICIAL_LANGUAGE IN (select OFFICIAL_LANGUAGE from capital_official_language)
order by code,country,city,official_language
limit 100;

--query2
with allcitystats as 
( select city.name CITY,city.id,country.name COUNTRY,city.district,city.population as CITY_POP
  from
  city,country
  where city.countrycode = country.code
),
alldistrictstats as 
( select allcitystats.district,allcitystats.COUNTRY,sum(CITY_POP) DISTRICT_POP,
  count(CITY) as D_CITY_CNT
  from allcitystats
  group by allcitystats.district,allcitystats.COUNTRY
  order by district,COUNTRY
),
allcountrystats as 
( select alldistrictstats.COUNTRY,country.code,sum(D_CITY_CNT) C_CITY_CNT,
  count(distinct countrylanguage.language) C_LANG_CNT
  from alldistrictstats,country,countrylanguage
  where alldistrictstats.COUNTRY = country.name
  and country.code = countrylanguage.countrycode
  group by COUNTRY,code
),
asian_region_stats as 
(
select sum(FOO.C_CITY_CNT) REGION_CITY_CNT,sum(FOO.C_LANG_CNT) REGION_LANG_CNT,FOO.region
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,city.name CAPITAL
from allcountrystats,country,city
where allcountrystats.code = country.code
and country.capital = city.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Asia') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)

select * from
(
select REGION_CITY_CNT as CITY_CNT,REGION_LANG_CNT as LANG_CNT, region as IDENTIFIER from asian_region_stats
UNION ALL
(
select sum(FOO.C_CITY_CNT) CITY_CNT,sum(FOO.C_LANG_CNT) LANG_CNT,FOO.region as IDENTIFIER
FROM
(
select allcountrystats.code,allcountrystats.COUNTRY,C_CITY_CNT,C_LANG_CNT,country.region,allcitystats.CITY CAPITAL
from allcountrystats,country,allcitystats
where allcountrystats.code = country.code
and country.capital = allcitystats.id
and C_CITY_CNT/C_LANG_CNT > 1
and country.continent = 'Europe') FOO
,allcountrystats,country

WHERE allcountrystats.code = country.code
and FOO.region = country.region
group by FOO.region order by FOO.region
)
) FOO1
order by FOO1.lang_cnt,FOO1.identifier;
-- queries using column lists for CTEs

-- query 1 use column list despite having no duplicate names
with capitals("C","ID","CAP") as 
(select country.code,id,city.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital),

lang_total(LC,CC,CLC) as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code) 

select country.name,"C","ID","CAP",lang_total.lc
from capitals,lang_total,country
where capitals."C" = country.code
and country.code = lang_total.cc;


-- query 2 Check case sensitivity for quoted names in column list. This should error out
with "lang_total"("LC",CC,CLC) as
( select count(*) as lang_count,country.code,countrylanguage.countrycode
  from country join countrylanguage on (country.code=countrylanguage.countrycode and governmentform='Federal Republic')
  group by country.code,countrylanguage.countrycode order by country.code) 
select LC from lang_total;

-- query 3 use column list when there are duplicate names within the CTE
with capitals("CO_C","C_ID","CAPITAL",country) as 
(select country.code,id,city.name,country.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital)

select "CO_C","C_ID","CAPITAL",COUNTRY from capitals where "CO_C"='SMR';


-- query4 use column list within another CTE
with capitals("CO_C","C_ID","CAPITAL",country) as 
(select country.code,id,city.name,country.name from city,country 
 where city.countrycode = country.code AND city.id = country.capital),
south_asian_capitals(A_CO_C,"C_ID",A_C_NAME,A_CO_NAME) as 
(select "CO_C","C_ID","CAPITAL",country from capitals,country where capitals."CO_C"=country.code and country.region = 'Southern and Central Asia')
select "a_co_c","C_ID",A_c_NaMe,"a_co_name" from south_asian_capitals order by A_CO_C;-- queries using CTEs in initplans and main plan 

--query1 using CTE in the select list(initplan) . One CTE using another CTE in it's initplan
with gnpstats as 
(
select REG_GNP/REG_OLD_GNP as GNP_INDEX,region from
(select sum(gnpold) as REG_OLD_GNP,
 sum(gnp) as REG_GNP,region
 from country
 group by region) FOO
where (case when (REG_GNP/REG_OLD_GNP) > 0 then 1.2 * (REG_GNP/REG_OLD_GNP) else null end) between 0.5 and 1.5
order by region
),
gnp_index_compare as 
(
select (select max(GNP_INDEX) from gnpstats) M_GNP_IDX,(gnp/gnpold) as GNP_IDX,country.name from
country where  country.continent = 'Asia'
)
select (select min(GNP_IDX) from gnp_index_compare) MIN_COUNTRY_GNP_IDX, (select max(GNP_INDEX) from gnpstats) MAX_REG_GNP_IDX,city.name CAPITAL,country.name COUNTRY
 from city,country where city.id = country.capital and country.continent='Europe';


--query2 using the CTE in the where clause(initplan) of the main query. One CTE using another CTE in it's where clause as it's initplan
with diversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country, 
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) > 6) d
 where d.countrycode = country.code and country.gnp > 100000),

notdiversecountries as
(select country.code,country.name,country.capital,d.CNT
 from country,
 (select countrylanguage.countrycode,count(*) as CNT from countrylanguage group by countrycode
  HAVING count(*) < 3) d
 where d.countrycode = country.code and country.gnp > 100000
 and d.CNT < (select max(CNT) from diversecountries))
select LANG_CNT,name from
(
select count(*) LANG_CNT,country.name,country.code from country,countrylanguage
where country.code = countrylanguage.countrycode and country.continent = 'North America'
group by country.name,country.code
) FOO
where FOO.LANG_CNT between (select min(CNT) from notdiversecountries) AND (select max(CNT) from diversecountries);



--query3 using CTE more than once in the same initplan and also more than once in the main query
with alleuropeanlanguages as 
(select country.code,country.name COUNTRY, city.name CAPITAL, language, isofficial, percentage
 FROM country,city,countrylanguage
 WHERE country.code = countrylanguage.countrycode
 and country.capital = city.id
 and country.continent = 'Europe'),
all_official_languages as
(
 select country.code,country.name,alleuropeanlanguages.language,alleuropeanlanguages.percentage
 from
 country,alleuropeanlanguages
 where country.code = alleuropeanlanguages.code and isofficial = 'True'
 and country.governmentform NOT  IN (select 'Commonwealth of the US' UNION ALL select 'Monarchy (Sultanate)' UNION ALL select 'Monarchy')
 and country.gnp > (select min(gnpold) from country where country.region = 'Western Europe')
)

SELECT avg(percentage),language
FROM
(
select country.name,city.name,percentage,language
from country,city,all_official_languages
where country.code = all_official_languages.code and country.capital = city.id and country.continent = 'Europe'

UNION ALL

select country.name,city.name,percentage,language
from country,city,all_official_languages
where country.code = all_official_languages.code and country.capital = city.id and country.continent = 'Asia'
) FOO 
group by FOO.language
HAVING avg(percentage) >=
(select avg(percentage) from 
( select percentage from all_official_languages,country where country.code = all_official_languages.code and country.region = 'British Islands'
  UNION
  select percentage from all_official_languages,country where country.code = all_official_languages.code and country.region = 'Western Europe'
) FOO )
order by FOO.language;  




-- queries using deeply nested CTEs

-- query1 using a CTE at every subquery level 
select avg(population),CITY
from
(
with size0_cities(CITY,POPULATION) as (select city.name,city.population from city where city.population >= 100)

select CITY,POPULATION from 
(
  with size1_cities(CITY,POPULATION) as ( select city,population from size0_cities where population >= 1000 )
  select CITY,POPULATION from 
  (
     with size2_cities(CITY,POPULATION) as (select city,population from size1_cities where population >= 10000)
     select CITY,POPULATION from
     (
       with size3_cities as (select city,population from  size2_cities where population >= 20000)
       select CITY,POPULATION from
       (
        with size4_cities as (select city,population from  size3_cities where population >= 50000)
        select CITY,POPULATION from
        (
         with size5_cities as (select city,population from  size4_cities where population >= 80000)
         select CITY,POPULATION from
         (
          with size6_cities as (select city,population from  size5_cities where population >= 150000)
          select CITY,POPULATION from
          (
           with size7_cities as (select city,population from  size6_cities where population >= 200000)
           select CITY,POPULATION from
           (
            with size8_cities as (select city,population from  size7_cities where population >= 250000)
            select CITY,POPULATION from
            (
             with size9_cities as (select city,population from  size8_cities where population >= 300000)
             select city,population from
             (
              with size10_cities as (select city,population from  size9_cities where population >= 6500000)
              select CITY,POPULATION from
              (
               with size11_cities as (select city,population from  size10_cities where population >= 7000000)
               select s1.city,s1.population from size11_cities s1,size10_cities s2
              ) FOO11
             ) FOO10
            ) FOO9
           ) FOO8
          ) FOO7
         ) FOO6
        ) FOO5
       ) FOO4
     )FOO3
  ) FOO2
) FOO1 order by city
) FOO0 group by city order by city;

--query 2 deeply nested CTEs with shared scans in the plan 
select avg(population),CITY
from
(
with size0_cities(CITY,POPULATION) as (select city.name,city.population from city where city.population >= 100)

select CITY,POPULATION from 
(
  with size1_cities(CITY,POPULATION) as ( select city,population from size0_cities where population >= 1000 )
  select CITY,POPULATION from 
  (
     with size2_cities(CITY,POPULATION) as (select city,population from size1_cities where population >= 10000)
     select CITY,POPULATION from
     (
       with size3_cities as (select city,population from  size2_cities where population >= 20000)
       select CITY,POPULATION from
       (
        with size4_cities as (select city,population from  size3_cities where population >= 50000)
        select CITY,POPULATION from
        (
         with size5_cities as (select city,population from  size4_cities where population >= 80000)
         select CITY,POPULATION from
         (
          with size6_cities as (select city,population from  size5_cities where population >= 150000)
          select CITY,POPULATION from
          (
           with size7_cities as (select city,population from  size6_cities where population >= 200000)
           select CITY,POPULATION from
           (
            with size8_cities as (select city,population from  size7_cities where population >= 250000)
            select CITY,POPULATION from
            (
             with size9_cities as (select city,population from  size8_cities where population >= 300000)
             select city,population from
             (
              with size10_cities as (select city,population from  size9_cities where population >= 6500000)
              select CITY,POPULATION from
              (
               with size11_cities as (select city,population from  size10_cities where population >= 7000000)
               select s1.city,s1.population from size11_cities s1,size10_cities s2
              ) FOO11
             ) FOO10
            ) FOO9
           ) FOO8
          ) FOO7
         ) FOO6
        ) FOO5
       ) FOO4
     )FOO3
  ) FOO2
) FOO1 order by city
) FOO0 group by city order by city;

-- query 3 deeply nested CTEs using every CTE defined 
select avg(population) avg_p,CITY
from
(
with size0_cities(CITY,POPULATION) as (select city.name,city.population from city where city.population >= 350000)

select CITY,POPULATION from 
(
  with size1_cities(CITY,POPULATION) as ( select city,population from size0_cities where population >= 360000 )
  select CITY,POPULATION from 
  (
     with size2_cities(CITY,POPULATION) as (select city,population from size1_cities where population >= 370000)
     select CITY,POPULATION from
     (
       with size3_cities as (select city,population from  size2_cities where population >= 380000)
       select CITY,POPULATION from
       (
        with size4_cities as (select city,population from  size3_cities where population >= 390000)
        select CITY,POPULATION from
        (
         with size5_cities as (select city,population from  size4_cities where population >= 400000)
         select CITY,POPULATION from
         (
          with size6_cities as (select city,population from  size5_cities where population >= 410000)
          select CITY,POPULATION from
          (
           with size7_cities as (select city,population from  size6_cities where population >= 420000)
           select CITY,POPULATION from
           (
            with size8_cities as (select city,population from  size7_cities where population >= 430000)
            select CITY,POPULATION from
            (
             with size9_cities as (select city,population from  size8_cities where population >= 440000)
             select city,population from
             (
              with size10_cities as (select city,population from  size9_cities where population >= 6500000)
              select CITY,POPULATION from
              (
               with size11_cities as (select city,population from  size10_cities where population >= 7000000)
               select s1.city,s1.population from size11_cities s1,size1_cities s2
               UNION
               select s1.city,s1.population from size10_cities s1,size2_cities s2
               UNION
               select s1.city,s1.population from size9_cities s1,size3_cities s2
               UNION
               select s1.city,s1.population from size8_cities s1,size4_cities s2
               UNION
               select s1.city,s1.population from size7_cities s1,size5_cities s2
               UNION
               select s1.city,s1.population from size6_cities s1,size6_cities s2
              ) FOO11
             ) FOO10
            ) FOO9
           ) FOO8
          ) FOO7
         ) FOO6
        ) FOO5
       ) FOO4
     )FOO3
  ) FOO2
) FOO1 order by city
) FOO0 group by city order by avg_p,city
LIMIT 20;

-- sanity tests with queries using CTEs in insert,update,delete and create

-- query 1 CTAS using CTE
create table bad_headofstates as 
(
with bad_headofstates as 
(
 select country.code,country.name,country.headofstate,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and countrylanguage.isofficial=true
 and (country.gnp < country.gnpold or country.gnp < 3000)
)
select OUTERMOST_FOO.*,bad_headofstates.headofstate from (
select avg(population),region from
(
select FOO.*,bad_headofstates.headofstate,city.name
from
(select bad_headofstates.code,country.capital,country.region,country.population from
bad_headofstates,country where bad_headofstates.code = country.code) FOO, bad_headofstates,city
where FOO.code = bad_headofstates.code and FOO.capital = city.id) OUTER_FOO
group by region ) OUTERMOST_FOO,bad_headofstates,country 
where country.code = bad_headofstates.code and country.region = OUTERMOST_FOO.region
order by OUTERMOST_FOO.region,bad_headofstates.headofstate LIMIT 40
);

select * from bad_headofstates order by region,headofstate;

--query 2 insert using CTE
insert into bad_headofstates
(
with bad_headofstates as 
(
 select country.code,country.name,country.headofstate,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and countrylanguage.isofficial=true
 and (country.gnp < country.gnpold or country.gnp < 3000)
)
select OUTERMOST_FOO.*,bad_headofstates.headofstate from (
select avg(population),region from
(
select FOO.*,bad_headofstates.headofstate,city.name
from
(select bad_headofstates.code,country.capital,country.region,country.population from
bad_headofstates,country where bad_headofstates.code = country.code) FOO, bad_headofstates,city
where FOO.code = bad_headofstates.code and FOO.capital = city.id) OUTER_FOO
group by region ) OUTERMOST_FOO,bad_headofstates,country 
where country.code = bad_headofstates.code and country.region = OUTERMOST_FOO.region
order by OUTERMOST_FOO.region,bad_headofstates.headofstate LIMIT 40
);

select * from bad_headofstates order by region,headofstate;

--query3 update using CTE
update bad_headofstates set region = cm.region FROM
(

with bad_headofstates as
(
 select country.code,country.name,country.headofstate,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and countrylanguage.isofficial=true
 and (country.gnp < country.gnpold or country.gnp < 3000)
)

select avg(OUTERMOST_FOO.AVG),OUTERMOST_FOO.region from (
select avg(population) AVG,region from
(
select FOO.*,bad_headofstates.headofstate,city.name
from
(select bad_headofstates.code,country.capital,country.region,country.population from
bad_headofstates,country where bad_headofstates.code = country.code) FOO, bad_headofstates,city
where FOO.code = bad_headofstates.code and FOO.capital = city.id) OUTER_FOO
group by region ) OUTERMOST_FOO,bad_headofstates,country
where country.code = bad_headofstates.code and country.region = OUTERMOST_FOO.region
and OUTERMOST_FOO.region = 'Central America'
group by OUTERMOST_FOO.region
order by OUTERMOST_FOO.region
) cm
where bad_headofstates.region = 'Caribbean';
 
select * from bad_headofstates order by avg,region,headofstate;

--query4 delete using CTE
delete from bad_headofstates USING
(
with bad_headofstates as
(
 select country.code,country.name,country.headofstate,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and countrylanguage.isofficial=true
 and (country.gnp < country.gnpold or country.gnp < 3000)
)

select avg(OUTERMOST_FOO.AVG),OUTERMOST_FOO.region from (
select avg(population) AVG,region from
(
select FOO.*,bad_headofstates.headofstate,city.name
from
(select bad_headofstates.code,country.capital,country.region,country.population from
bad_headofstates,country where bad_headofstates.code = country.code) FOO, bad_headofstates,city
where FOO.code = bad_headofstates.code and FOO.capital = city.id) OUTER_FOO
group by region ) OUTERMOST_FOO,bad_headofstates,country
where country.code = bad_headofstates.code and country.region = OUTERMOST_FOO.region
and OUTERMOST_FOO.region = 'Central America'
group by OUTERMOST_FOO.region
order by OUTERMOST_FOO.region
) as  cm
where bad_headofstates.region = cm.region;

select * from bad_headofstates order by region,headofstate;

-- delete using CTE in its subplan
delete from bad_headofstates where bad_headofstates.avg NOT IN
(
with bad_headofstates as
(
 select country.code,country.name,country.headofstate,countrylanguage.language
 from
 country,countrylanguage
 where country.code = countrylanguage.countrycode and countrylanguage.isofficial=true
 and (country.gnp < country.gnpold or country.gnp < 3000)
)

select OUTERMOST_FOO.AVG from (
select avg(population) AVG,region from
(
select FOO.*,bad_headofstates.headofstate,city.name
from
(select bad_headofstates.code,country.capital,country.region,country.population from
bad_headofstates,country where bad_headofstates.code = country.code) FOO, bad_headofstates,city
where FOO.code = bad_headofstates.code and FOO.capital = city.id) OUTER_FOO
group by region ) OUTERMOST_FOO,bad_headofstates,country
where country.code = bad_headofstates.code and country.region = OUTERMOST_FOO.region
and OUTERMOST_FOO.region = 'Australia and New Zealand' or OUTERMOST_FOO.region = 'Eastern Asia'
order by OUTERMOST_FOO.region
);

select * from bad_headofstates order by region,headofstate;

drop table bad_headofstates;
-- queries with views using CTEs

-- view1 with multiple CTEs being used multiple times

create view view_with_shared_scans as
(
with longlivingregions as 
(
select FOO.*,count(distinct language) as "lang_count"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       avg(lifeexpectancy) as "REGION_LIFETIME",region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP",foo."REGION_LIFETIME"),

denseregions as 
(
select FOO.*,count(distinct language) as "lang_count",
       sum(surfacearea) as "REGION_SURFACE_AREA"
from(
     select
       sum(population) as "REGION_POP",
       sum(gnp) as "REGION_GNP",
       region
     from
      country
     group by region
    ) FOO,countrylanguage,country
where
   country.code = countrylanguage.countrycode
   and FOO.region = country.region
   and FOO."REGION_POP" != 0
group by
FOO.region,foo."REGION_POP",foo."REGION_GNP"
order by sum(surfacearea)/foo."REGION_POP" desc),

allcountrystats as 
( select country.code,country.name,count(distinct city.id) CITY_CNT,
  count(distinct countrylanguage.language) LANG_CNT
  from country,city,countrylanguage
  where country.code = city.countrycode
  and country.code = countrylanguage.countrycode
  group by country.code,country.name
)

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1800 and 1850

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear between 1850 and 1900

UNION ALL

select allcountrystats.CITY_CNT,allcountrystats.LANG_CNT,allcountrystats.name,
       "REGION_SURFACE_AREA","REGION_LIFETIME",longlivingregions."REGION_POP",longlivingregions.lang_count,longlivingregions."REGION_GNP",longlivingregions.region
from longlivingregions,denseregions,allcountrystats,country
where longlivingregions.region = denseregions.region and allcountrystats.code = country.code and country.region = longlivingregions.region
and country.indepyear > 1900
);

\d+ view_with_shared_scans;

select city_cnt,lang_cnt,name,region from view_with_shared_scans order by name LIMIT 50;

select city_cnt,lang_cnt,name,"REGION_POP","REGION_GNP",region from view_with_shared_scans where region = 'Eastern Europe';

drop view view_with_shared_scans;

-- start_ignore
drop table if exists tbl87;
-- end_ignore

create table tbl87(code char(3), n numeric);
insert into tbl87 values ('abc',1);
insert into tbl87 values ('xyz',2);  
insert into tbl87 values ('def',3); 

with cte as 
	(
	select code, n, x 
	from tbl87 
	, (select 100 as x) d
	)
select code from tbl87 t where 1= (select count(*) from cte where cte.code::text=t.code::text or cte.code::text = t.code::text);


with cte as
        (
        select count(*) from
        (
        select code, n, x
        from tbl87
        , (select 100 as x) d
        ) FOO
        )
select code from tbl87 t where 1= (select * from cte);

with cte as
        (
        select count(*) from
        (
        select code, n, x
        from tbl87
        , (select 100 as x) d
        ) FOO
        )
select code from tbl87 t where 1= (select count(*) from cte);
--start_ignore
drop table if exists foo;
drop table if exists bar;
drop table if exists emp;
drop table if exists manager;
--end_ignore
-------------------------------------------------------------------------------------------------------------------------------
CREATE TABLE foo (key INTEGER, value INTEGER);
INSERT INTO foo SELECT i, i % 10 from generate_series(1, 100) i;

CREATE TABLE bar(bar_key INTEGER, bar_value INTEGER);
INSERT INTO bar SELECT i, i % 5 FROM generate_series(1, 1000) i;

SET enable_hashjoin = OFF;
SET enable_mergejoin = OFF;
SET enable_nestloop = ON;

-------------------
-- QUERY 1
-------------------

-- Query has WITH clause
-- WITH clause subquery used once 
-- The subquery in the WITH clause appears under a NLJ in the query plan
-- The sharing of CTE is disabled


SET gp_cte_sharing = OFF;

-- EXPLAIN
-- WITH o AS (SELECT * FROM foo AS o_key)
--     SELECT o.key, bar_value FROM o, bar
-- WHERE
-- o.key != bar_value
-- ORDER BY 1, 2 LIMIT 20;

WITH o AS (SELECT * FROM foo AS o_key)
    SELECT o.key, bar_value FROM o, bar
WHERE
o.key != bar_value
ORDER BY 1, 2 LIMIT 20;

-- Query has WITH clause
-- WITH clause subquery used once 
-- The subquery in the WITH clause appears under a NLJ in the query plan
-- The sharing of CTE is disabled

SET gp_cte_sharing = ON;

-- EXPLAIN
-- WITH o AS (SELECT * FROM foo AS o_key)
--     SELECT o.key, bar_value FROM o, bar
-- WHERE
-- o.key != bar_value
-- ORDER BY 1, 2 LIMIT 20;

WITH o AS (SELECT * FROM foo AS o_key)
    SELECT o.key, bar_value FROM o, bar
WHERE
o.key != bar_value
ORDER BY 1, 2 LIMIT 20;

-------------------
-- Query 2, Query 3 
-------------------

-- Query has WITH clause
-- WITH clause subquery used multiple times
-- The subquery in the WITH clause appears under a NLJ in the query plan
-- The sharing of CTE is disabled

SET gp_cte_sharing = OFF;

-- EXPLAIN 
-- WITH o as (SELECT * FROM foo AS o_key)
--     SELECT o1.key, o2.value FROM o o1, o o2 
--     WHERE o1.key != o2.value ORDER BY 1, 2 DESC LIMIT 100;

WITH o as (SELECT * FROM foo AS o_key)
    SELECT o1.key, o2.value FROM o o1, o o2 
    WHERE o1.key != o2.value ORDER BY 1, 2 DESC LIMIT 100;

-- EXPLAIN
-- WITH o AS (SELECT * FROM foo),
--      n AS (SELECT * FROM foo)
-- SELECT o.key , n.value 
-- FROM 
-- o JOIN n ON o.key = n.key
-- WHERE 
-- o.key != n.value
-- ORDER BY 1, 2;

WITH o AS (SELECT * FROM foo),
     n AS (SELECT * FROM foo)
SELECT o.key , n.value 
FROM 
o JOIN n ON o.key = n.key
WHERE 
o.key != n.value
ORDER BY 1, 2;

-- Query has WITH clause
-- Subquery using WITH clause multiple times
-- The subquery in the WITH clause appears under a NLJ in the query plan
-- The sharing of CTE is enabled

SET gp_cte_sharing = ON;
--EXPLAIN 
--WITH o AS (SELECT * FROM foo AS o_key)
--    SELECT o1.key, o2.value FROM o o1, o o2 
--    WHERE o1.key != o2.value ORDER BY 1, 2 DESC LIMIT 100;
WITH o AS (SELECT * FROM foo AS o_key)
    SELECT o1.key, o2.value FROM o o1, o o2 
    WHERE o1.key != o2.value ORDER BY 1, 2 DESC LIMIT 100;

-- EXPLAIN
-- WITH o AS (SELECT * FROM foo),
--      n AS (SELECT * FROM foo)
-- SELECT o.key , n.value 
-- FROM 
-- o JOIN n ON o.key = n.key
-- WHERE 
-- o.key != n.value
-- ORDER BY 1, 2;

WITH o AS (SELECT * FROM foo),
     n AS (SELECT * FROM foo)
SELECT o.key , n.value 
FROM 
o JOIN n ON o.key = n.key
WHERE 
o.key != n.value
ORDER BY 1, 2;

-------------------
-- Query 4, Query 5
-------------------

-- Query has WITH clause
-- Subquery with nested WITH clause appears under a NLJ in the query plan
-- The sharing of CTE is disabled

SET gp_cte_sharing = OFF;

-- EXPLAIN
-- WITH o AS (SELECT * FROM foo AS o_key),
-- m AS (SELECT * FROM o WHERE o.key < 50)
--     SELECT m.key, bar_value FROM m, bar
-- WHERE
-- m.key != bar_value
-- ORDER BY 1, 2 LIMIT 20;

WITH o AS (SELECT * FROM foo AS o_key),
m AS (SELECT * FROM o WHERE o.key < 50)
    SELECT m.key, bar_value FROM m, bar
WHERE
m.key != bar_value
ORDER BY 1, 2 LIMIT 20;

-- EXPLAIN 
-- WITH o AS (SELECT * FROM foo AS o_key),
-- m AS (SELECT * FROM o WHERE o.key < 50)
--     SELECT m1.key, m2.value FROM m m1, m m2
--     WHERE m1.key != m2.value
--     ORDER BY 1, 2 DESC LIMIT 100;

WITH o AS (SELECT * FROM foo AS o_key),
m AS (SELECT * FROM o WHERE o.key < 50)
    SELECT m1.key, m2.value FROM m m1, m m2
    WHERE m1.key != m2.value
    ORDER BY 1, 2 DESC LIMIT 100;

-- Query has WITH clause
-- Subquery with nested WITH clause appears under a NLJ in the query plan
-- The sharing of CTE is enabled

SET gp_cte_sharing = ON;
--EXPLAIN
--WITH o AS (SELECT * FROM foo AS o_key),
--m AS (SELECT * FROM o WHERE o.key < 50)
--    SELECT m.key, bar_value FROM m, bar
--WHERE
--m.key != bar_value
--ORDER BY 1, 2 LIMIT 20;
WITH o AS (SELECT * FROM foo AS o_key),
m AS (SELECT * FROM o WHERE o.key < 50)
    SELECT m.key, bar_value FROM m, bar
WHERE
m.key != bar_value
ORDER BY 1, 2 LIMIT 20;

-- EXPLAIN 
-- WITH o AS (SELECT * FROM foo AS o_key),
-- m AS (SELECT * from o WHERE o.key < 50)
--     SELECT m1.key, m2.value FROM m m1, m m2
--     WHERE m1.key != m2.value
--     ORDER BY 1, 2 DESC LIMIT 100;

WITH o AS (SELECT * FROM foo AS o_key),
m AS (SELECT * from o WHERE o.key < 50)
    SELECT m1.key, m2.value FROM m m1, m m2
    WHERE m1.key != m2.value
    ORDER BY 1, 2 DESC LIMIT 100;

-------------------
-- Query 6, Query 7
-------------------

-- Query has WITH clause
-- Subquery with nested WITH clause appears under a NLJ in the query plan
-- Nested WITH clause uses NLJ in query plan
-- The sharing of CTE is disabled

SET gp_cte_sharing = OFF;

-- EXPLAIN 
-- WITH o AS (SELECT * FROM foo AS o_key),
-- m AS (SELECT * FROM o join bar ON o.key < bar_value) 
--     SELECT m.value, m.bar_key, bar.bar_value 
--     FROM m, bar
--     WHERE m.bar_key = bar.bar_value
--     ORDER BY 2, 1 DESC LIMIT 100;
-- 
-- EXPLAIN
-- WITH o AS (SELECT * FROM foo AS o_key),
-- m AS (SELECT * FROM o join bar ON o.key < bar_value)
--     SELECT m1.key, m2.value FROM m m1, m m2
--     WHERE m1.key != m2.value
--     ORDER BY 1, 2 DESC LIMIT 100;

-- Query has WITH clause
-- Subquery with nested WITH clause appears under a NLJ in the query plan
-- Nested WITH clause involves join in query plan
-- The sharing of CTE is enabled

SET gp_cte_sharing = ON;
--EXPLAIN 
--WITH o AS (SELECT * FROM foo AS o_key),
--m AS (SELECT * FROM o join bar ON o.key < bar_value) 
--    SELECT m.value, m.bar_key, bar.bar_value 
--    FROM m, bar
--    WHERE m.bar_key = bar.bar_value
--    ORDER BY 2, 1 DESC LIMIT 100;
-- EXPLAIN
-- WITH o AS (SELECT * FROM foo AS o_key),
-- m AS (SELECT * FROM o join bar ON o.key < bar_value)
--     SELECT m1.key, m2.value FROM m m1, m m2
--     WHERE m1.key != m2.value
--     ORDER BY 1, 2 DESC LIMIT 100;

-------------------------------------------------------------------------------------------------------------------------------

CREATE TABLE emp (ename CHARACTER VARYING(50), empno INTEGER, mgr INTEGER, deptno INTEGER);
INSERT INTO emp SELECT i || 'NAME', i, i%6, i%16 FROM generate_series(1, 100) i;

CREATE TABLE manager (dept_mgr_no INTEGER);
INSERT INTO manager SELECT i FROM generate_series(1, 100) i;

SET enable_hashjoin = OFF;
SET enable_mergejoin = OFF;
SET enable_nestloop = ON;

-------------------
-- Query 8
-------------------

-- The sharing of CTE is disabled

SET gp_cte_sharing = OFF;

-- EXPLAIN
-- WITH dept_count AS 
--     (SELECT deptno, COUNT(*) AS dept_count FROM emp 
--      GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
--        dc.dept_count AS emp_dept_count 
-- FROM emp e, dept_count dc 
-- WHERE  e.deptno = dc.deptno
-- ORDER BY 1, 2 DESC LIMIT 20;

WITH dept_count AS 
    (SELECT deptno, COUNT(*) AS dept_count FROM emp 
     GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
       dc.dept_count AS emp_dept_count 
FROM emp e, dept_count dc 
WHERE  e.deptno = dc.deptno
ORDER BY 1, 2 DESC LIMIT 20;

-- The sharing of CTE is enabled

SET gp_cte_sharing = ON;
--EXPLAIN
--WITH dept_count AS 
--    (SELECT deptno, COUNT(*) AS dept_count FROM emp 
--     GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
--       dc.dept_count AS emp_dept_count 
--FROM emp e, dept_count dc 
--WHERE  e.deptno = dc.deptno
--ORDER BY 1, 2 DESC LIMIT 20;
WITH dept_count AS 
    (SELECT deptno, COUNT(*) AS dept_count FROM emp 
     GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
       dc.dept_count AS emp_dept_count 
FROM emp e, dept_count dc 
WHERE  e.deptno = dc.deptno
ORDER BY 1, 2 DESC LIMIT 20;

-------------------
-- Query 9
-------------------

-- The sharing of CTE is disabled

SET gp_cte_sharing = OFF;
--EXPLAIN
--WITH dept_count AS ( SELECT deptno, COUNT(*) AS dept_count 
--                     FROM emp 
--                     GROUP BY deptno)
--SELECT e.ename AS employee_name, 
--       dc1.dept_count AS emp_dept_count,
--       m.ename AS manager_name,
--       dc2.dept_count AS mgr_dept_count
--FROM emp e,
--     dept_count dc1, 
--     emp m, 
--     dept_count dc2 
--WHERE e.deptno = dc1.deptno AND
--      e.mgr = m.empno AND 
--      m.deptno = dc2.deptno
--ORDER BY 1, 2, 3, 4 DESC LIMIT 25;
WITH dept_count AS ( SELECT deptno, COUNT(*) AS dept_count 
                     FROM emp 
                     GROUP BY deptno)
SELECT e.ename AS employee_name, 
       dc1.dept_count AS emp_dept_count,
       m.ename AS manager_name,
       dc2.dept_count AS mgr_dept_count
FROM emp e,
     dept_count dc1, 
     emp m, 
     dept_count dc2 
WHERE e.deptno = dc1.deptno AND
      e.mgr = m.empno AND 
      m.deptno = dc2.deptno
ORDER BY 1, 2, 3, 4 DESC LIMIT 25;

-- The sharing of CTE is enabled

SET gp_cte_sharing = ON;
--EXPLAIN
--WITH dept_count AS ( SELECT deptno, COUNT(*) AS dept_count 
--                     FROM emp 
--                     GROUP BY deptno)
--SELECT e.ename AS employee_name, 
--       dc1.dept_count AS emp_dept_count,
--       m.ename AS manager_name,
--       dc2.dept_count AS mgr_dept_count
--FROM emp e,
--     dept_count dc1, 
--     emp m, 
--     dept_count dc2 
--WHERE e.deptno = dc1.deptno AND
--      e.mgr = m.empno AND 
--      m.deptno = dc2.deptno
--ORDER BY 1, 2, 3, 4 DESC LIMIT 25;
WITH dept_count AS ( SELECT deptno, COUNT(*) AS dept_count 
                     FROM emp 
                     GROUP BY deptno)
SELECT e.ename AS employee_name, 
       dc1.dept_count AS emp_dept_count,
       m.ename AS manager_name,
       dc2.dept_count AS mgr_dept_count
FROM emp e,
     dept_count dc1, 
     emp m, 
     dept_count dc2 
WHERE e.deptno = dc1.deptno AND
      e.mgr = m.empno AND 
      m.deptno = dc2.deptno
ORDER BY 1, 2, 3, 4 DESC LIMIT 25;

-------------------
-- Query 10
-------------------

-- The sharing of CTE is disabled

SET gp_cte_sharing = OFF;
--EXPLAIN
--WITH dept_count AS 
--    (SELECT deptno, COUNT(*) AS dept_count 
--    FROM emp 
--    GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
--       dc1.dept_count AS emp_dept_count,
--       m.ename AS manager_name
--FROM emp e,
--     dept_count dc1, emp m
--WHERE  e.deptno = dc1.deptno AND
--       e.mgr = m.empno
--ORDER BY 1, 2, 3 ASC LIMIT 20;
WITH dept_count AS 
    (SELECT deptno, COUNT(*) AS dept_count 
    FROM emp 
    GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
       dc1.dept_count AS emp_dept_count,
       m.ename AS manager_name
FROM emp e,
     dept_count dc1, emp m
WHERE  e.deptno = dc1.deptno AND
       e.mgr = m.empno
ORDER BY 1, 2, 3 ASC LIMIT 20;

-- The sharing of CTE is enabled

SET gp_cte_sharing = ON;
--EXPLAIN
--WITH dept_count AS 
--    (SELECT deptno, COUNT(*) AS dept_count 
--    FROM emp 
--    GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
--       dc1.dept_count AS emp_dept_count,
--       m.ename AS manager_name
--FROM emp e,
--     dept_count dc1, emp m
--WHERE  e.deptno = dc1.deptno AND
--       e.mgr = m.empno
--ORDER BY 1, 2, 3 ASC LIMIT 20;
WITH dept_count AS 
    (SELECT deptno, COUNT(*) AS dept_count 
    FROM emp 
    GROUP BY deptno)                                                                                                                                                                                        SELECT e.ename AS employee_name, 
       dc1.dept_count AS emp_dept_count,
       m.ename AS manager_name
FROM emp e,
     dept_count dc1, emp m
WHERE  e.deptno = dc1.deptno AND
       e.mgr = m.empno
ORDER BY 1, 2, 3 ASC LIMIT 20;

-------------------
-- Query 11
-------------------

-- The sharing of CTE is disabled

SET gp_cte_sharing = OFF;
--EXPLAIN
--WITH dept_count AS (SELECT deptno, COUNT(*) AS dept_count 
--                    FROM emp 
--                    GROUP BY deptno),
--mgr_count AS (SELECT dept_mgr_no, COUNT(*) AS mgr_count
--              FROM manager
--              GROUP BY dept_mgr_no)

--SELECT e.ename AS employee_name, 
--       dc1.dept_count AS emp_dept_count,
--       m.ename AS manager_name,
--       dmc1.mgr_count AS mgr_dept_count
--FROM emp e,
--     dept_count dc1, emp m, 
--     mgr_count dmc1 
--WHERE  e.deptno = dc1.deptno AND
--       e.mgr = m.empno AND 
--       m.deptno = dmc1.dept_mgr_no
--ORDER BY 1, 2, 3, 4 DESC LIMIT 25;
WITH dept_count AS (SELECT deptno, COUNT(*) AS dept_count 
                    FROM emp 
                    GROUP BY deptno),
mgr_count AS (SELECT dept_mgr_no, COUNT(*) AS mgr_count
              FROM manager
              GROUP BY dept_mgr_no)

SELECT e.ename AS employee_name, 
       dc1.dept_count AS emp_dept_count,
       m.ename AS manager_name,
       dmc1.mgr_count AS mgr_dept_count
FROM emp e,
     dept_count dc1, emp m, 
     mgr_count dmc1 
WHERE  e.deptno = dc1.deptno AND
       e.mgr = m.empno AND 
       m.deptno = dmc1.dept_mgr_no
ORDER BY 1, 2, 3, 4 DESC LIMIT 25;

-- The sharing of CTE is enabled

SET gp_cte_sharing = ON;
--EXPLAIN
--WITH dept_count AS (SELECT deptno, COUNT(*) AS dept_count 
--                    FROM emp 
--                    GROUP BY deptno),
--mgr_count AS (SELECT dept_mgr_no, COUNT(*) AS mgr_count
--              FROM manager
--              GROUP BY dept_mgr_no)

--SELECT e.ename AS employee_name, 
--       dc1.dept_count AS emp_dept_count,
--       m.ename AS manager_name,
--       dmc1.mgr_count AS mgr_dept_count
--FROM emp e,
--     dept_count dc1, emp m, 
--     mgr_count dmc1 
--WHERE  e.deptno = dc1.deptno AND
--       e.mgr = m.empno AND 
--       m.deptno = dmc1.dept_mgr_no
--ORDER BY 1, 2, 3, 4 DESC LIMIT 25;
WITH dept_count AS (SELECT deptno, COUNT(*) AS dept_count 
                    FROM emp 
                    GROUP BY deptno),
mgr_count AS (SELECT dept_mgr_no, COUNT(*) AS mgr_count
              FROM manager
              GROUP BY dept_mgr_no)

SELECT e.ename AS employee_name, 
       dc1.dept_count AS emp_dept_count,
       m.ename AS manager_name,
       dmc1.mgr_count AS mgr_dept_count
FROM emp e,
     dept_count dc1, emp m, 
     mgr_count dmc1 
WHERE  e.deptno = dc1.deptno AND
       e.mgr = m.empno AND 
       m.deptno = dmc1.dept_mgr_no
ORDER BY 1, 2, 3, 4 DESC LIMIT 25;

-- Test that SharedInputScan within the same slice is always executed 
set gp_cte_sharing=on;

-- start_ignore
CREATE TABLE car (a int, b int);
CREATE TABLE zoo (c int, d int);
insert into car select i, (i+1) from generate_series(1,10) i;
insert into zoo values (4,4);
-- end_ignore

WITH c as (SELECT sum(a) as a_sum, b FROM car GROUP BY b)
SELECT * FROM c as c1, zoo WHERE zoo.c != 4 AND c1.b = zoo.c
UNION ALL
SELECT * FROM c as c1, zoo WHERE zoo.c = c1.b;

-- Test that nested CTE generates a valid plan
EXPLAIN (COSTS OFF) WITH q AS (SELECT * FROM (WITH cte AS (SELECT * FROM car) SELECT * FROM car WHERE a > 7) t) SELECT * FROM q;
WITH q AS (SELECT * FROM (WITH cte AS (SELECT * FROM car) SELECT * FROM car WHERE a > 7) t) SELECT * FROM q;

-- start_ignore
drop schema qp_with_clause cascade;
-- end_ignore

RESET optimizer_trace_fallback;
