Skip to content

Instantly share code, notes, and snippets.

@gka
Last active December 16, 2015 13:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gka/5442597 to your computer and use it in GitHub Desktop.
Save gka/5442597 to your computer and use it in GitHub Desktop.
import dataset
def main():
db = dataset.connect('sqlite:////Users/gka/Incubator/eurostat/eurostat.db')
# common WHERE parameters
common = dict(sex='T', age='Y_LT25', s_adj='SA')
# paramters to be added for each join
split = dict(
Italy=dict(geo='IT'),
Germany=dict(geo='DE'),
Spain=dict(geo='ES'),
Portugal=dict(geo='PT'),
Turkey=dict(geo='TR'),
France=dict(geo='FR'),
Greece=dict(geo='EL'),
Cyprus=dict(geo='CY')
)
# generate sql query
sql = join_sql('une_rt_m', 'time', 'value', common, split, order_by='time')
# freeze to csv
dataset.freeze(db.query(sql), filename='youth-unemployment.csv')
def join_sql(table, key, value, where, split, order_by=False):
sql = 'SELECT t0.%s, ' % key
select_ = []
t = 0
for split_key in split:
select_.append('t%d.%s %s' % (t, value, split_key))
t += 1
sql += ', '.join(select_)
sql += ' FROM '
t = 0
sub_queries = []
for split_key in split:
query = '(SELECT %s, %s FROM %s WHERE ' % (key, value, table)
w = dict()
w.update(where)
w.update(split[split_key])
query += ' AND '.join(['%s = "%s"' % (k, v) for k, v in w.iteritems()]) + ') t%d' % t
if t > 0:
query += ' ON t%d.%s = t0.%s' % (t, key, key)
sub_queries.append(query)
t += 1
sql += ' LEFT JOIN '.join(sub_queries)
if order_by:
dir_ = 'ASC'
if order_by[0] == '-':
dir_ = 'DESC'
order_by = order_by[1:]
sql += ' ORDER BY t0.%s %s' % (order_by, dir_)
return sql + ';'
if __name__ == '__main__':
main()
time Italy Germany Spain Portugal Turkey France Greece Cyprus
1983M02 17.6 15.4
1983M03 17.9 15.3
1983M04 18.3 15.3
1983M05 18.7 15.5
1983M06 19.2 15.7
1983M07 19.8 15.9
1983M08 20.1 16.2
1983M09 20.1 16.4
1983M10 20.2 16.8
1983M11 20.3 17.2
1983M12 20.4 17.5
1984M01 20.5 18.1
1984M02 20.4 18.5
1984M03 20.4 19.0
1984M04 20.7 19.4
1984M05 20.8 19.6
1984M06 21.1 19.8
1984M07 21.3 20.0
1984M08 21.3 20.0
1984M09 21.3 20.1
1984M10 21.3 20.3
1984M11 21.2 20.3
1984M12 21.0 20.3
1985M01 20.8 20.3
1985M02 20.8 20.2
1985M03 20.9 20.1
1985M04 20.9 19.8
1985M05 20.9 19.6
1985M06 20.7 19.6
1985M07 20.9 19.4
1985M08 21.2 19.3
1985M09 21.6 19.2
1985M10 21.7 19.0
1985M11 21.8 18.9
1985M12 21.6 18.8
1986M01 21.6 18.7
1986M02 21.4 18.7
1986M03 21.4 18.8
1986M04 44.6 21.1 18.8
1986M05 44.4 20.8 18.9
1986M06 44.1 20.3 18.9
1986M07 43.5 19.5 18.8
1986M08 43.3 19.1 18.8
1986M09 43.4 18.9 18.8
1986M10 43.4 18.9 18.6
1986M11 43.6 18.7 18.5
1986M12 43.5 18.4 18.4
1987M01 42.5 18.0 18.3
1987M02 42.4 17.9 18.3
1987M03 42.3 17.7 18.3
1987M04 40.8 17.6 18.2
1987M05 40.8 17.2 18.1
1987M06 40.6 16.7 18.0
1987M07 40.4 15.9 17.9
1987M08 40.1 15.6 17.9
1987M09 40.1 15.4 17.9
1987M10 39.7 15.0 17.8
1987M11 39.4 14.8 17.8
1987M12 39.3 14.6 17.8
1988M01 39.2 14.6 17.7
1988M02 39.0 14.5 17.6
1988M03 38.7 14.4 17.4
1988M04 38.9 14.4 17.2
1988M05 38.8 14.1 17.0
1988M06 38.7 13.5 16.9
1988M07 36.8 13.0 16.8
1988M08 36.4 12.7 16.7
1988M09 35.9 12.4 16.5
1988M10 35.8 12.2 16.3
1988M11 35.5 12.1 16.0
1988M12 35.1 12.2 15.8
1989M01 34.9 12.3 15.6
1989M02 34.4 12.2 15.5
1989M03 33.8 12.0 15.4
1989M04 33.4 11.8 15.3
1989M05 32.7 11.5 15.3
1989M06 32.3 11.7 15.1
1989M07 31.7 11.9 15.1
1989M08 31.7 11.8 15.1
1989M09 31.2 11.6 15.0
1989M10 31.7 11.6 14.9
1989M11 31.8 11.6 14.9
1989M12 32.1 11.5 14.9
1990M01 31.4 11.3 14.7
1990M02 31.4 11.1 14.6
1990M03 31.0 11.0 14.5
1990M04 30.6 10.7 14.5
1990M05 30.5 10.9 14.5
1990M06 30.4 11.3 14.6
1990M07 30.4 10.8 14.7
1990M08 30.7 10.7 14.8
1990M09 30.3 10.5 14.9
1990M10 29.9 10.2 15.0
1990M11 29.6 9.9 15.1
1990M12 29.5 9.7 15.3
1991M01 5.7 28.9 9.6 15.3
1991M02 5.7 28.9 9.4 15.4
1991M03 5.7 28.8 9.0 15.6
1991M04 5.7 29.0 8.8 15.8
1991M05 5.7 29.0 9.0 16.0
1991M06 5.7 28.9 9.2 16.2
1991M07 5.8 29.0 9.5 16.5
1991M08 5.8 29.1 9.6 16.6
1991M09 5.9 29.2 9.5 16.7
1991M10 5.9 29.6 9.6 16.7
1991M11 5.9 29.4 9.6 16.8
1991M12 6.0 29.4 9.5 16.9
1992M01 26.3 6.0 29.2 9.6 16.9
1992M02 26.7 6.1 29.3 9.7 17.0
1992M03 26.7 6.1 29.9 9.8 17.1
1992M04 26.3 6.2 31.4 10.0 17.2
1992M05 26.1 6.3 31.6 10.1 17.4
1992M06 26.1 6.4 31.6 10.1 17.6
1992M07 27.3 6.5 32.2 10.0 18.0
1992M08 27.9 6.6 32.2 10.1 18.3
1992M09 27.4 6.8 32.9 10.2 18.5
1992M10 25.5 6.9 35.0 10.4 18.9
1992M11 25.3 7.1 35.6 10.6 19.3
1992M12 25.3 7.2 36.2 11.0 19.7
1993M01 26.2 7.3 37.7 11.3 19.9
1993M02 26.4 7.5 38.0 11.6 20.1
1993M03 26.9 7.6 38.9 12.1 20.4
1993M04 28.2 7.8 39.7 12.1 20.7
1993M05 28.3 7.9 39.9 12.2 21.1
1993M06 28.2 8.0 40.8 12.2 21.4
1993M07 28.3 8.1 41.9 12.7 21.8
1993M08 28.2 8.3 42.0 13.0 22.0
1993M09 28.3 8.4 42.4 13.3 22.2
1993M10 29.7 8.5 42.1 13.4 22.4
1993M11 29.7 8.6 42.0 13.5 22.7
1993M12 29.8 8.7 42.3 13.7 22.9
1994M01 28.8 8.8 43.1 13.9 23.1
1994M02 28.8 8.9 43.1 14.1 23.1
1994M03 28.8 9.0 43.0 14.2 23.2
1994M04 29.0 9.1 43.1 14.4 23.2
1994M05 28.9 9.1 43.1 14.6 23.2
1994M06 28.9 9.1 42.8 14.6 23.2
1994M07 28.6 9.0 42.4 14.5 23.0
1994M08 28.6 9.0 42.4 14.5 22.8
1994M09 28.6 8.9 42.1 14.8 22.5
1994M10 30.2 8.9 41.6 15.2 22.3
1994M11 30.1 8.9 41.9 15.6 22.1
1994M12 30.2 8.8 42.6 15.7 22.1
1995M01 30.4 8.8 40.0 15.8 21.8
1995M02 30.3 8.7 40.7 15.9 21.6
1995M03 30.4 8.7 40.5 16.1 21.6
1995M04 30.3 8.7 39.5 16.3 21.7
1995M05 30.2 8.7 39.6 16.3 21.7
1995M06 30.2 8.8 39.3 16.1 21.3
1995M07 30.6 8.9 39.2 16.0 20.7
1995M08 30.5 9.0 39.3 15.8 20.9
1995M09 30.5 9.1 39.4 16.0 21.1
1995M10 30.0 9.2 39.1 16.2 21.2
1995M11 30.0 9.3 39.1 16.3 21.6
1995M12 30.1 9.4 38.6 16.4 20.5
1996M01 29.4 9.5 39.2 16.4 20.2
1996M02 29.4 9.6 39.2 16.6 22.1
1996M03 29.5 9.7 39.2 16.9 22.2
1996M04 31.4 9.8 38.8 17.1 22.0
1996M05 31.4 9.9 38.7 17.2 22.1
1996M06 31.4 10.0 38.5 17.0 22.3
1996M07 30.2 10.1 38.3 16.7 22.4
1996M08 30.1 10.2 38.0 16.5 22.6
1996M09 30.1 10.3 37.7 16.2 22.8
1996M10 30.4 10.4 37.3 16.1 23.0
1996M11 30.4 10.5 36.9 16.1 23.2
1996M12 30.5 10.5 36.5 16.1 23.3
1997M01 30.2 10.6 36.3 16.0 23.7
1997M02 30.2 10.7 36.2 16.0 23.6
1997M03 30.3 10.8 35.8 15.4 23.5
1997M04 31.1 10.8 35.7 15.0 23.3
1997M05 31.0 10.8 35.4 14.7 23.1
1997M06 31.0 10.7 35.2 14.5 23.0
1997M07 29.6 10.7 34.8 14.5 22.8
1997M08 29.6 10.6 34.3 14.4 22.6
1997M09 29.6 10.5 34.1 14.4 22.5
1997M10 29.8 10.4 33.8 14.3 22.5
1997M11 29.8 10.4 33.4 13.9 22.3
1997M12 29.8 10.3 33.3 13.1 22.1
1998M01 29.8 10.2 33.0 22.3
1998M02 29.7 10.1 32.7 22.2
1998M03 29.7 10.1 32.7 22.1
1998M04 30.1 10.0 32.4 21.8 29.9
1998M05 30.0 9.9 32.2 21.6 29.8
1998M06 30.0 9.8 31.8 21.4 30.0
1998M07 29.2 9.8 31.4 21.4 30.4
1998M08 29.2 9.7 31.1 21.4 30.7
1998M09 29.1 9.6 30.5 21.4 30.9
1998M10 30.5 9.5 30.2 21.3 30.1
1998M11 30.4 9.4 29.7 21.3 31.0
1998M12 30.4 9.4 29.3 21.2 30.6
1999M01 29.9 9.3 28.4 23.6 30.5
1999M02 29.9 9.2 27.9 23.6 30.6
1999M03 29.8 9.2 27.4 23.7 30.6
1999M04 29.1 9.1 27.0 23.5 31.8
1999M05 29.0 9.1 26.6 23.4 31.7
1999M06 28.9 9.0 26.2 23.3 31.7
1999M07 27.7 9.0 25.8 22.9 31.5
1999M08 27.7 9.0 25.5 22.7 31.4
1999M09 27.6 9.0 25.1 22.3 31.3
1999M10 28.4 9.0 24.7 21.9 32.1
1999M11 28.3 9.0 24.6 21.6 32.1
1999M12 28.2 9.0 24.5 21.2 31.7
2000M01 27.6 9.0 24.4 20.9 29.9 10.3
2000M02 27.5 9.0 24.0 20.7 29.8 10.3
2000M03 27.5 9.0 23.5 20.4 29.8 10.3
2000M04 27.7 8.9 23.1 20.0 29.7 10.3
2000M05 27.6 8.9 22.9 19.7 29.5 10.3
2000M06 27.5 8.8 22.7 19.5 29.4 10.3
2000M07 27.2 8.7 22.7 19.3 29.3 9.7
2000M08 27.1 8.6 22.6 19.3 29.2 9.7
2000M09 27.0 8.5 22.5 19.0 29.1 9.7
2000M10 25.8 8.5 22.5 18.6 27.9 9.2
2000M11 25.7 8.4 22.1 18.3 27.9 9.2
2000M12 25.6 8.3 21.5 18.2 27.8 9.2
2001M01 24.6 8.2 20.2 16.2 28.2 8.4
2001M02 24.6 8.1 21.3 16.3 28.0 8.4
2001M03 24.5 8.1 21.1 16.2 27.8 8.4
2001M04 24.1 8.1 20.8 16.1 28.4 8.3
2001M05 24.0 8.1 21.6 16.1 28.2 8.3
2001M06 23.8 8.2 21.3 16.2 28.1 8.3
2001M07 24.3 8.3 21.1 16.3 27.8 8.3
2001M08 24.2 8.4 21.1 16.4 27.7 8.3
2001M09 24.2 8.5 20.9 16.4 27.6 8.3
2001M10 23.5 8.7 20.8 16.5 28.3 7.9
2001M11 23.5 8.8 20.8 16.7 28.1 7.9
2001M12 23.5 9.0 21.0 16.7 28.0 7.9
2002M01 23.3 9.1 21.2 17.0 27.9 7.7
2002M02 23.3 9.3 21.9 17.0 27.8 7.7
2002M03 23.2 9.4 21.5 17.1 27.7 7.7
2002M04 23.2 9.5 21.9 17.2 26.9 8.0
2002M05 23.1 9.6 22.1 17.3 26.8 8.0
2002M06 23.0 9.8 22.2 17.3 26.7 8.0
2002M07 23.2 9.9 22.4 17.4 26.6 8.1
2002M08 23.1 10.1 22.3 17.4 26.6 8.1
2002M09 23.1 10.2 22.5 17.4 26.5 8.1
2002M10 22.7 10.4 22.7 17.3 26.1 8.3
2002M11 22.7 10.5 22.7 17.4 26.1 8.3
2002M12 22.7 10.7 22.8 17.4 26.1 8.3
2003M01 24.3 10.9 22.8 18.0 26.1 8.5
2003M02 24.2 11.1 22.8 17.9 26.0 8.5
2003M03 24.2 11.2 22.9 18.2 25.9 8.5
2003M04 24.9 11.3 22.6 19.0 26.6 9.0
2003M05 24.8 11.4 22.4 19.1 26.5 9.0
2003M06 24.7 11.6 22.7 19.2 26.5 9.0
2003M07 23.4 11.7 22.7 19.1 27.7 8.7
2003M08 23.4 11.8 22.7 18.4 27.5 8.7
2003M09 23.3 11.8 22.8 19.5 27.4 8.7
2003M10 22.1 11.9 22.8 20.0 27.5 8.7
2003M11 22.2 12.0 22.7 20.2 27.4 8.7
2003M12 22.2 12.1 22.6 20.6 27.3 8.7
2004M01 23.0 12.2 22.5 20.4 28.6 8.6
2004M02 23.1 12.5 22.2 20.5 28.3 8.6
2004M03 23.0 12.7 21.9 20.5 28.0 8.6
2004M04 24.0 13.1 22.4 20.4 27.2 9.3
2004M05 23.8 13.4 22.2 20.5 26.6 9.3
2004M06 24.0 13.8 22.3 20.7 26.5 9.3
2004M07 22.9 14.1 22.2 20.9 26.1 11.2
2004M08 22.9 14.3 22.2 20.9 25.5 11.2
2004M09 23.3 14.6 22.1 20.9 25.8 11.2
2004M10 23.6 14.8 21.6 20.8 26.1 11.7
2004M11 24.4 15.2 21.4 21.0 26.3 11.7
2004M12 23.5 15.6 21.2 21.0 26.3 11.7
2005M01 24.2 16.0 21.2 17.2 20.8 25.8 13.2
2005M02 24.3 16.3 21.2 17.1 20.7 25.2 13.2
2005M03 24.3 16.5 20.9 17.5 20.5 24.7 13.2
2005M04 23.8 16.4 20.5 17.5 20.3 25.0 13.9
2005M05 23.6 16.2 20.1 17.8 20.5 25.4 13.9
2005M06 23.6 16.0 19.6 17.6 20.9 26.2 13.9
2005M07 24.5 15.8 19.1 17.4 21.7 26.2 13.9
2005M08 24.3 15.7 18.7 17.4 22.1 26.5 13.9
2005M09 24.1 15.5 18.6 17.2 22.1 26.8 13.9
2005M10 23.9 15.3 18.8 17.3 21.7 26.9 14.1
2005M11 22.6 15.0 18.7 17.1 21.8 26.9 14.1
2005M12 23.3 14.6 18.6 17.6 22.0 26.1 14.1
2006M01 23.1 14.3 18.2 17.2 22.6 24.8 11.5
2006M02 23.9 14.0 18.0 17.2 23.0 25.1 11.5
2006M03 22.2 13.9 18.1 16.3 23.1 24.9 11.5
2006M04 22.1 13.9 18.0 16.6 22.8 25.1 10.0
2006M05 22.2 13.9 17.9 16.1 22.5 24.8 10.0
2006M06 20.8 13.9 17.6 16.3 22.4 24.8 10.0
2006M07 20.3 13.9 17.6 16.2 22.2 24.8 8.2
2006M08 20.7 13.8 17.6 16.0 22.2 24.5 8.2
2006M09 20.9 13.6 17.6 16.1 22.0 24.9 8.2
2006M10 20.6 13.4 18.1 16.4 22.1 25.0 9.8
2006M11 20.7 13.1 18.1 16.3 21.9 25.8 9.8
2006M12 20.2 12.9 17.9 16.5 21.7 27.2 9.8
2007M01 20.9 12.6 17.6 21.5 25.0 10.2
2007M02 19.0 12.4 17.4 16.7 21.3 24.3 10.2
2007M03 19.6 12.1 17.4 16.4 20.9 24.0 10.2
2007M04 19.6 11.9 17.6 17.3 20.5 23.3 10.6
2007M05 19.5 11.8 17.5 17.1 20.2 22.8 10.6
2007M06 20.1 11.7 18.2 17.8 19.7 22.3 10.6
2007M07 19.9 11.7 18.3 17.6 19.2 22.4 10.2
2007M08 20.9 11.7 18.6 17.7 18.8 22.8 10.2
2007M09 20.1 11.7 18.6 17.3 18.8 22.7 10.2
2007M10 21.4 11.6 18.7 17.6 19.2 22.5 9.6
2007M11 20.2 11.5 19.2 17.3 19.0 21.8 9.6
2007M12 21.6 11.4 19.8 17.1 18.6 21.7 9.6
2008M01 20.5 11.2 20.4 17.0 18.1 21.7 10.5
2008M02 20.9 11.1 20.8 17.4 17.8 22.6 10.5
2008M03 20.4 10.9 21.0 17.1 18.0 23.1 10.5
2008M04 20.3 10.7 22.4 16.6 18.6 22.0 8.0
2008M05 21.0 10.5 23.3 16.7 18.8 21.2 8.0
2008M06 22.3 10.3 24.1 17.7 19.2 21.2 8.0
2008M07 22.1 10.1 24.4 18.4 19.3 21.8 8.5
2008M08 22.3 10.0 24.9 18.3 19.4 21.8 8.5
2008M09 22.3 10.0 25.9 19.2 19.7 22.2 8.5
2008M10 22.2 10.1 28.2 19.8 20.3 21.9 9.3
2008M11 23.5 10.3 29.9 21.4 20.9 22.9 9.3
2008M12 22.6 10.6 31.6 21.9 21.6 23.9 9.3
2009M01 23.7 10.9 33.4 22.7 22.3 25.0 9.6
2009M02 23.5 11.2 34.8 22.9 23.2 25.0 9.6
2009M03 24.6 11.3 36.1 23.5 23.9 24.8 9.6
2009M04 24.6 11.5 36.6 24.2 24.3 25.2 13.3
2009M05 24.4 11.5 37.1 24.2 24.4 25.0 13.3
2009M06 25.1 11.5 37.7 23.2 24.1 24.6 13.3
2009M07 26.0 11.5 39.0 22.6 24.0 24.6 16.7
2009M08 25.9 11.5 39.7 22.1 24.2 25.3 16.7
2009M09 26.6 11.5 40.1 22.5 24.2 26.5 16.7
2009M10 26.8 11.5 39.9 21.9 24.5 27.3 16.7
2009M11 26.2 11.4 39.5 21.9 24.3 27.9 16.7
2009M12 26.6 11.3 39.7 20.6 23.8 28.8 16.7
2010M01 27.2 11.2 39.8 21.6 23.6 29.6 18.5
2010M02 28.1 11.0 40.1 21.2 23.6 30.3 18.5
2010M03 26.6 10.7 40.5 21.5 23.5 30.5 18.5
2010M04 29.4 10.5 41.0 19.7 23.6 31.2 17.8
2010M05 28.2 10.3 41.3 19.3 23.9 32.3 17.8
2010M06 27.4 10.1 41.5 18.7 24.0 31.9 17.8
2010M07 26.7 9.9 41.6 18.8 24.2 32.6 15.1
2010M08 27.5 9.8 41.9 19.8 24.5 32.6 15.1
2010M09 27.9 9.6 42.2 19.7 23.9 33.9 15.1
2010M10 28.3 9.4 42.8 19.3 22.9 34.9 14.7
2010M11 27.9 9.3 43.3 18.5 22.6 36.3 14.7
2010M12 28.5 9.1 43.6 18.4 22.8 37.2 14.7
2011M01 28.5 9.0 43.9 26.8 18.0 23.2 37.5 19.1
2011M02 27.6 9.0 44.4 27.1 17.0 23.5 39.5 19.1
2011M03 27.8 8.9 44.9 27.6 16.8 23.3 40.7 19.1
2011M04 27.4 8.9 44.9 28.3 17.0 23.0 44.2 20.7
2011M05 27.8 8.8 45.2 29.2 17.5 22.8 42.6 20.7
2011M06 27.8 8.7 45.9 29.1 17.9 22.6 43.6 20.7
2011M07 28.6 8.6 46.7 29.5 17.8 22.4 44.3 23.5
2011M08 29.3 8.5 47.2 30.2 17.4 22.1 45.8 23.5
2011M09 30.5 8.4 47.9 31.3 16.0 22.2 46.7 23.5
2011M10 30.4 8.3 48.3 33.0 15.7 22.7 47.4 25.8
2011M11 31.8 8.2 48.9 34.2 15.0 23.1 50.1 25.8
2011M12 31.8 8.2 49.5 34.8 15.2 23.2 51.3 25.8
2012M01 32.3 8.1 50.2 34.6 14.7 23.1 52.1 25.3
2012M02 33.9 8.1 50.9 34.8 15.0 23.0 52.5 25.3
2012M03 35.2 8.1 51.3 35.7 15.2 23.1 52.3 25.3
2012M04 34.7 8.1 51.9 36.9 15.9 23.2 53.1 26.8
2012M05 35.3 8.1 52.6 37.7 15.7 23.7 54.0 26.8
2012M06 34.3 8.1 52.9 39.0 15.2 24.1 55.4 26.8
2012M07 35.0 8.0 53.6 39.4 15.4 24.8 56.1 27.5
2012M08 34.4 8.0 54.1 39.6 15.4 25.0 57.0 27.5
2012M09 36.1 8.0 54.5 39.0 16.2 25.2 58.0 27.5
2012M10 36.3 8.0 55.1 38.7 16.1 25.3 56.3 31.8
2012M11 37.4 8.0 55.2 38.3 16.6 25.3 58.8 31.8
2012M12 37.1 7.9 55.3 38.0 16.8 25.5 58.4 31.8
2013M01 38.6 7.8 55.4 38.3 26.0 59.1
2013M02 37.8 7.7 55.7 38.2 26.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment