Wiki How:People by year/SQL for table

DROP TABLE IF EXISTS temp_peopleyr;CREATE TABLE temp_peopleyrSELECT DISTINCT cur_id AS p_id, cur_title AS p_title, '0000' AS y1, '0000' AS y2, '00' AS p_cats, '00000' AS p_age, cur_title AS p_sortkey, 0 AS p_updateFROM categorylinks, curWHERE (cl_to LIKE '%deaths' OR cl_to LIKE '%births')AND cl_from=cur_idAND cur_namespace=0AND cur_is_redirect=0AND cl_sortkey NOT LIKE '*%'ORDER BY cl_sortkeyLIMIT 100000;ALTER TABLE temp_peopleyr ADD PRIMARY KEY (p_id);ALTER TABLE temp_peopleyr ADD COLUMN p_categories VARCHAR(255);# Adds yearsUPDATE temp_peopleyr, categorylinksSET y1=LEFT(cl_to, 4), p_sortkey=cl_sortkeyWHERE p_id=cl_from  AND cl_to LIKE '%births';UPDATE temp_peopleyr, categorylinksSET y2=LEFT(cl_to, 4), p_sortkey=cl_sortkeyWHERE p_id=cl_from  AND cl_to LIKE '%deaths';UPDATE temp_peopleyrSET p_age=y2-y1;UPDATE temp_peopleyrSET p_age=2004-y1WHERE y2=0000;DROP TABLE IF EXISTS temp_peoplecatcount;CREATE TABLE temp_peoplecatcountSELECT p_id AS cc_id, Count(*) AS cc_numFROM temp_peopleyr, categorylinksWHERE p_id=cl_fromAND cl_to NOT LIKE '%deaths'AND cl_to NOT LIKE '%births'# ignore categories added through templatesAND cl_to <> 'People_stubs'AND cl_to <> 'Writer_stubs'AND cl_to <> 'Language_stubs'AND cl_to <> '1911_Britannica'AND cl_to <> 'NPOV_disputes'AND cl_to <> 'Unformatted_ice_hockey_player'AND cl_to <> 'Substubs'AND cl_to <> 'Articles_to_be_split'AND cl_to <> 'Cleanup'AND cl_to <> 'Pages_on_votes_for_deletion'AND cl_to <> 'Templates_for_deletion'AND cl_to <> 'Disambiguation'GROUP BY p_title LIMIT 1000000;UPDATE temp_peopleyr, temp_peoplecatcountSET p_cats=cc_numWHERE p_id=cc_id;DROP TABLE IF EXISTS temp_peoplecatcount;

Notes edit

  • Missing: Adding names of other categories into "p_categories".
  • Marginally suitable for pre-1000.