##############################################################################
# Parte del libro Introducción a la programación con Python
# Autor: Nilo Ney Coutinho Menezes
# Editora Novatec (c) 2015 - ISBN 978-85-7522-250-8
# Primera edición - Mayo/2016
# Sitio: http://www.librodepython.com
#
# Archivo: lista\capítulo 11\11.22 - Funciones de agregación con order by.py
# Descripción: Funciones de agregación con order by
##############################################################################
import sqlite3
print("Región Estados Población Mínima Máxima Media Total (suma)")
print("====== ======= ========= ========== ========== ============")
with sqlite3.connect("brasil.db") as conexión:
for región in conexión.execute("""
select región, count(*), min(población),
max(población), avg(población), sum(población)
from estados
group by región
order by sum(población) desc"""):
print("{0:6} {1:7} {2:18,} {3:10,} {4:10,.0f} {5:13,}".format(*región))
print("\nBrasil: {0:6} {1:18,} {2:10,} {3:10,.0f} {4:13,}".format(
*conexión.execute("""
select count(*), min(población), max(población),
avg(población), sum(población) from estados""").fetchone()))