Vikipedija:Alternatyvios statistikos pusiau rankinė įranga/MySQL/tarptautineteise

Puslapis iš Vikipedijos, laisvosios enciklopedijos.
DELIMITER $$

DROP PROCEDURE IF EXISTS `wiki1`.`tarptautineteise` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `tarptautineteise`(uz varchar(255), sav varchar(255),  savos varchar(255))
BEGIN
DECLARE kiek INT;

-- Savaites straipsniai

update categorytree c
join wiki.softcategory sc on (c.cat_parent = sc.cat_parent and c.cat_title = sc.cat_title and sc.cat_for = sav)
set cat_soft_parent = 1;

DROP TABLE IF EXISTS Savaite;
create table Savaite (
        cat_id int(10) unsigned NOT NULL default '0',
        cat_pid int(10) unsigned NOT NULL default '0',
        cat_title varchar(255)  NOT NULL default '',
        cat_parent varchar(255)  NOT NULL default '',
        cat_soft_parent TINYINT(1)  NOT NULL default 0,
        cat_soft_1 TINYINT(1)  NOT NULL default 0,
        cat_soft_2 TINYINT(1)  NOT NULL default 0,
        cat_soft_3 TINYINT(1)  NOT NULL default 0,
        cat_soft_4 TINYINT(1)  NOT NULL default 0,
        cat_soft_5 TINYINT(1)  NOT NULL default 0,
        cat_soft_6 TINYINT(1)  NOT NULL default 0,
        cat_soft_7 TINYINT(1)  NOT NULL default 0,
        cat_soft_8 TINYINT(1)  NOT NULL default 0,
        cat_soft_9 TINYINT(1)  NOT NULL default 0,
        cat_soft_10 TINYINT(1)  NOT NULL default 0,
        cat_soft_11 TINYINT(1)  NOT NULL default 0,
        cat_tree varchar(255) BINARY CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '',
        PRIMARY KEY  (cat_id, cat_parent),
        UNIQUE KEY `cat_pid` (cat_pid, cat_parent),
        UNIQUE KEY `cat_title` (cat_title, cat_parent),
        INDEX `cat_parent` (cat_parent),
        INDEX `cat_soft` (cat_soft_1,cat_soft_2,cat_soft_3,cat_soft_4,cat_soft_5,
                          cat_soft_6,cat_soft_7,cat_soft_8,cat_soft_9,cat_soft_10,cat_soft_11),
        INDEX `cat_tree` (cat_tree) ) as
select cat_id, cat_pid, cat_title, cat_parent, cat_soft_parent,
       0 cat_soft_1,0 cat_soft_2,0 cat_soft_3,0 cat_soft_4,0 cat_soft_5,0 cat_soft_6,0 cat_soft_7,0 cat_soft_8,
       0 cat_soft_9, 0 cat_soft_10, 0 cat_soft_11, sav cat_tree
from categorytree c
where c.cat_title in (sav);

-- kartoti kol nebeiterpia
labelSavaite: LOOP
insert ignore into Savaite (cat_id, cat_pid, cat_title, cat_parent, cat_soft_parent,
                               cat_soft_1, cat_soft_2, cat_soft_3, cat_soft_4, cat_soft_5,
                               cat_soft_6, cat_soft_7, cat_soft_8, cat_soft_9, cat_soft_10,
                               cat_soft_11, cat_tree)
select c.cat_id, c.cat_pid, c.cat_title, c.cat_parent,
       if(c.cat_tree in ('Kita', 'Vikipedija', 'Biografijos', 'Lietuva', 'Teisės_mokslai'), c.cat_soft_parent, 2) cat_soft_parent,
       if(vv.cat_soft_1 is null, v.cat_soft_1, vv.cat_soft_1) cat_soft_1,
       if(vv.cat_soft_2 is null, v.cat_soft_2, vv.cat_soft_2) cat_soft_2,
       if(vv.cat_soft_3 is null, v.cat_soft_3, vv.cat_soft_3) cat_soft_3,
       if(vv.cat_soft_4 is null, v.cat_soft_4, vv.cat_soft_4) cat_soft_4,
       if(vv.cat_soft_5 is null, v.cat_soft_5, vv.cat_soft_5) cat_soft_5,
       if(vv.cat_soft_6 is null, v.cat_soft_6, vv.cat_soft_6) cat_soft_6,
       if(vv.cat_soft_7 is null, v.cat_soft_7, vv.cat_soft_7) cat_soft_7,
       if(vv.cat_soft_8 is null, v.cat_soft_8, vv.cat_soft_8) cat_soft_8,
       if(vv.cat_soft_9 is null, v.cat_soft_9, vv.cat_soft_9) cat_soft_9,
       if(vv.cat_soft_10 is null, v.cat_soft_10, vv.cat_soft_10) cat_soft_10,
       if(vv.cat_soft_11 is null, v.cat_soft_11, vv.cat_soft_11) cat_soft_11,
       if(c.cat_tree in ('Kita'), sav, c.cat_tree) cat_tree
from categorytree c
join Savaite v on (v.cat_title = c.cat_parent and v.cat_soft_parent = 0)
left join vikipedija vv on (c.cat_id = vv.cat_id)
where not exists (
  select 1 from Savaite nv
  where nv.cat_id = c.cat_id
  and   nv.cat_parent = c.cat_parent
);

  SELECT row_count() INTO kiek;

  IF kiek = 0 THEN LEAVE labelSavaite; END IF;
END LOOP labelSavaite;

update categorytree c
join wiki.softcategory sc on (c.cat_parent = sc.cat_parent and c.cat_title = sc.cat_title and sc.cat_for = sav)
set cat_soft_parent = 0;

select _utf8':''''Šis straipsnis - vienas iš alternatyvios statistikos straipsnių. Žr. [[Vikipedija:Alternatyvi statistika|]]''''' AS `title` from dual
union select _utf8'' from dual
union select concat(_utf8'Žemiau pateiktas kategorijos „[[:Kategorija:', sav, '|]]“ pokategorijų sąrašas. (''''Duomenys ', uz, ''''').') from dual
union select _utf8'' from dual
union select _utf8'[[Kategorija:Vikipedijos statistika]]' from dual
union select _utf8'----' from dual
union select _utf8'{| class="sortable" {{graži lentelė}}' from dual
union select _utf8'! Kategorija !! {{Ref label|Note|1|1}} !! {{Ref label|Note|2|2}} !! {{Ref label|Note|3|3}} !! {{Ref label|Note|4|4}} !! {{Ref label|Note|5|5}} !! {{Ref label|Note|6|6}} !! {{Ref label|Note|7|7}} !! {{Ref label|Note|8|8}} !! {{Ref label|Note|9|9}} !! {{Ref label|Note|10|10}} !! {{Ref label|Note|11|11}} !! {{Ref label|Note|n|n}} arba {{Ref label|Note|r|r}} !! Tėvinė kategorija !! psl.{{Ref label|Note|p|p}} !! kat.{{Ref label|Note|k|k}} !! vaizd.{{Ref label|Note|v|v}}' from dual
union select * from (
SELECT concat('|-\n| [[:Kategorija:',replace(g.cat_title,_utf8'_',_utf8' '),_utf8'|',replace(g.cat_title,_utf8'_',_utf8' '),_utf8']]',
  if (g.cat_soft_1 = 1, ' || {{Ref label|Note|1|1}}', ' ||'),
  if (g.cat_soft_2 = 1, ' || {{Ref label|Note|2|2}}', ' ||'),
  if (g.cat_soft_3 = 1, ' || {{Ref label|Note|3|3}}', ' ||'),
  if (g.cat_soft_4 = 1, ' || {{Ref label|Note|4|4}}', ' ||'),
  if (g.cat_soft_5 = 1, ' || {{Ref label|Note|5|5}}', ' ||'),
  if (g.cat_soft_6 = 1, ' || {{Ref label|Note|6|6}}', ' ||'),
  if (g.cat_soft_7 = 1, ' || {{Ref label|Note|7|7}}', ' ||'),
  if (g.cat_soft_8 = 1, ' || {{Ref label|Note|8|8}}', ' ||'),
  if (g.cat_soft_9 = 1, ' || {{Ref label|Note|9|9}}', ' ||'),
  if (g.cat_soft_10 = 1, ' || {{Ref label|Note|10|10}}', ' ||'),
  if (g.cat_soft_11 = 1, ' || {{Ref label|Note|11|11}}', ' ||'),
  ' ||',
  if (g.cat_soft_parent = 1, ' {{Ref label|Note|n|n}}', ''),
  if (g.cat_soft_parent = 2,
     concat(' {{Ref label|Note|r|r}} [[Naudotojas:Vpovilaitis/Statistika/', g.cat_tree, '/Kategorijos|žr.]]'), ''),
  _utf8' || [[:Kategorija:',replace(g.cat_parent,_utf8'_',_utf8' '),_utf8'|',replace(g.cat_parent,_utf8'_',_utf8' '),_utf8']]',
  _utf8' ||align=right| ', c.cat_pages-c.cat_subcats-c.cat_files,
  _utf8' ||align=right| ', c.cat_subcats,
  _utf8' ||align=right| ', c.cat_files
) AS `title`
FROM Savaite g
join category c on g.cat_id = c.cat_id
order by g.cat_title) a
union select _utf8'|}' from dual
union select _utf8'== Išnašos ==' from dual
union select _utf8'* {{Note label|Note|1|1}} - [[:Kategorija:Nepilni|]]' from dual
union select _utf8'* {{Note label|Note|2|2}} - [[:Kategorija:Nesutvarkyti straipsniai|]]' from dual
union select _utf8'* {{Note label|Note|3|3}} - [[:Kategorija:Nebaigti-terminai|]]' from dual
union select _utf8'* {{Note label|Note|4|4}} - [[:Kategorija:Nepilni (Lietuvos gyvenvietės)|Nepilni (Lietuvos gyvenvietės)]]' from dual
union select _utf8'* {{Note label|Note|5|5}} - [[:Kategorija:Beviltiški|]]' from dual
union select _utf8'* {{Note label|Note|6|6}} - [[:Kategorija:Kandidatai jungti|]]' from dual
union select _utf8'* {{Note label|Note|7|7}} - [[:Kategorija:Kandidatai skaidyti|]]' from dual
union select _utf8'* {{Note label|Note|8|8}} - [[:Kategorija:Tušti straipsniai|]]' from dual
union select _utf8'* {{Note label|Note|9|9}} - [[:Kategorija:Kandidatai skubiai trinti|]]' from dual
union select _utf8'* {{Note label|Note|10|10}} - [[:Kategorija:Kandidatai trinti|]]' from dual
union select _utf8'* {{Note label|Note|11|11}} - [[:Kategorija:Nuorodiniai straipsniai|]]' from dual
union select _utf8'* {{Note label|Note|n|n}} - Kategorijos pokategorijos neįtrauktos į šį sąrašą.' from dual
union select _utf8'* {{Note label|Note|r|r}} - Kategorija ir jos straipsniai neįtraukta į šį sąrašą.' from dual
union select _utf8'* {{Note label|Note|p|p}} - Puslapių skaičius į kurį nėra įskaičiuota pokategorijose esantys puslapiai.' from dual
union select _utf8'* {{Note label|Note|k|k}} - Kategorijų skaičius į kurį nėra įskaičiuota pokategorijose esančios kategorijos.' from dual
union select _utf8'* {{Note label|Note|v|v}} - Vaizdų skaičius į kurį nėra įskaičiuota pokategorijose esantys vaizdai.'
INTO OUTFILE 'tarptautineteise kategorijos.csv'
LINES TERMINATED BY '\r\n'
from dual
;

select _utf8':''''Šis straipsnis - vienas iš alternatyvios statistikos straipsnių. Žr. [[Vikipedija:Alternatyvi statistika|]]''''' AS `title` from dual
union select _utf8'' from dual
union select concat(_utf8'Žemiau pateiktas sąrašas nepradėtų kurti (trokštamiausių) straipsnių, į kuriuos yra daugiausiai nuorodų iš ', savos, ' straipsnių. (''''Duomenys ', uz, ''''').') from dual
union select _utf8'' from dual
union select _utf8'[[Kategorija:Vikipedijos statistika]]' from dual
union select _utf8'----' from dual
union select * from (select concat(_utf8'# [[',replace(a.pl_title,_utf8'_',_utf8' '),_utf8']]',
       ' ([[:Specialus:Whatlinkshere/',
       replace(a.pl_title,_utf8'_',_utf8' '),_utf8'|',a.kiekis,_utf8' nuorodos]])') AS title
from (
  select b.pl_title AS pl_title, if(b.pl_title is null, 0, count(distinct b.pl_from, b.pl_title)) AS kiekis
  from (
    select distinct p.pl_title as pl_title, vp.p_id as pl_from
    from vikipedija_page vp
    join pagelinks p on (vp.p_id = p.pl_from and p.pl_namespace = 0 and vp.p_soft_8 = 0)
    where exists (
      select 1
      from categorylinks cl
      join Savaite g on (cl.cl_to = g.cat_title and g.cat_soft_parent < 2)
      where vp.p_id = cl.cl_from
      limit 1
    )
    and not exists (
      select 1
      from vikipedija_page pg
      where p.pl_namespace = 0
      and p.pl_title = pg.p_title
      limit 1
    )
    and not exists(
      select 1 from templatelinks tl
      where vp.p_id = tl.tl_from
      and exists(
        select 1 from templates t
        where tl.tl_namespace = t.templ_namespace
        and tl.tl_title = t.templ_title
        and exists(
          select 1 from templatepagelinks tpl2
          where t.templ_id = tpl2.pl_from
          and tpl2.pl_namespace = 0
          and tpl2.pl_title = p.pl_title
          and p.pl_namespace = 0
          limit 1
        )
        limit 1
      )
      limit 1
    )
    and not exists (
      select 1 from templatepagelinks tpl
      where p.pl_from = tpl.pl_from
      and tpl.pl_namespace = 0
      and tpl.pl_title = p.pl_title
      and p.pl_namespace = 0
      limit 1
    )
  ) b
  group by b.pl_title
) a
where a.kiekis > 0
order by a.kiekis desc, a.pl_title
limit 1000
) c
INTO OUTFILE 'tarptautineteise trokstami.csv'
LINES TERMINATED BY '\r\n'
;

select _utf8':''''Šis straipsnis - vienas iš alternatyvios statistikos straipsnių. Žr. [[Vikipedija:Alternatyvi statistika|]]''''' AS `title` from dual
union select _utf8'' from dual
union select concat(_utf8'Žemiau pateiktas sąrašas ', savos, ' straipsnių, į kuriuos yra daugiausia nuorodų. (''''Duomenys ', uz, ''''').') from dual
union select _utf8'' from dual
union select _utf8'[[Kategorija:Vikipedijos statistika]]' from dual
union select _utf8'----' from dual
union select * from (
select concat(_utf8'# [[',replace(vp.p_title,_utf8'_',_utf8' '),_utf8']]',
       if(vp.p_soft_1 = 1,'{{Ref label|Note|1|1}}',''),
       if(vp.p_soft_2 = 1,'{{Ref label|Note|2|2}}',''),
       if(vp.p_soft_3 = 1,'{{Ref label|Note|3|3}}',''),
       if(vp.p_soft_4 = 1,'{{Ref label|Note|4|4}}',''),
       if(vp.p_soft_5 = 1,'{{Ref label|Note|5|5}}',''),
       if(vp.p_soft_6 = 1,'{{Ref label|Note|6|6}}',''),
       if(vp.p_soft_7 = 1,'{{Ref label|Note|7|7}}',''),
       if(vp.p_soft_8 = 1,'{{Ref label|Note|8|8}}',''),
       if(vp.p_soft_9 = 1,'{{Ref label|Note|9|9}}',''),
       if(vp.p_soft_11 = 1,'{{Ref label|Note|11|11}}',''),
       _utf8' ([[:Specialus:Whatlinkshere/',
       replace(vp.p_title,_utf8'_',_utf8' '),_utf8'|',vpr.page_links_all-vpr.page_links_tusti-if(vtpr.page_links_all is null,0,vtpr.page_links_all),
       _utf8' nuorodos]])') AS title
from vikipedija_page vp
join vikipedija_page_refs vpr on (vp.p_title = vpr.page_title)
left join vikipedija_tpage_refs vtpr on (vp.p_title = vtpr.page_title)
where vpr.page_links_all-vpr.page_links_tusti-if(vtpr.page_links_all is null,0,vtpr.page_links_all) > 1
and vpr.page_links_all > vpr.page_links_tusti+if(vtpr.page_links_all is null,0,vtpr.page_links_all)
and exists (
      select 1
      from categorylinks cl
      join Savaite g on (cl.cl_to = g.cat_title and g.cat_soft_parent < 2)
      where vp.p_id = cl.cl_from
      limit 1
    )
order by vpr.page_links_all-vpr.page_links_tusti-if(vtpr.page_links_all is null,0,vtpr.page_links_all) desc, vp.p_title
limit 1000) b
union select _utf8'== Išnašos ==' from dual
union select _utf8'* {{Note label|Note|1|1}} - [[:Kategorija:Nepilni|]]' from dual
union select _utf8'* {{Note label|Note|2|2}} - [[:Kategorija:Nesutvarkyti straipsniai|]]' from dual
union select _utf8'* {{Note label|Note|3|3}} - [[:Kategorija:Nebaigti-terminai|]]' from dual
union select _utf8'* {{Note label|Note|4|4}} - [[:Kategorija:Nepilni (Lietuvos gyvenvietės)|Nepilni (Lietuvos gyvenvietės)]]' from dual
union select _utf8'* {{Note label|Note|5|5}} - [[:Kategorija:Beviltiški|]]' from dual
union select _utf8'* {{Note label|Note|6|6}} - [[:Kategorija:Kandidatai jungti|]]' from dual
union select _utf8'* {{Note label|Note|7|7}} - [[:Kategorija:Kandidatai skaidyti|]]' from dual
union select _utf8'* {{Note label|Note|8|8}} - [[:Kategorija:Tušti straipsniai|]]' from dual
union select _utf8'* {{Note label|Note|9|9}} - [[:Kategorija:Kandidatai skubiai trinti|]]' from dual
union select _utf8'* {{Note label|Note|10|10}} - [[:Kategorija:Kandidatai trinti|]]' from dual
union select _utf8'* {{Note label|Note|11|11}} - [[:Kategorija:Nuorodiniai straipsniai|]]' from dual
INTO OUTFILE 'Svarbiausi tarptautineteise straipsniai.csv'
LINES TERMINATED BY '\r\n'
;

-- [[Vikipedija:Trokštamiausi nebaigti]]

select _utf8':''''Šis straipsnis - vienas iš alternatyvios statistikos straipsnių. Žr. [[Vikipedija:Alternatyvi statistika|]]''''' AS `title` from dual
union select _utf8'' from dual
union select concat(_utf8'Žemiau pateiktas sąrašas nebaigtų ', savos, ' straipsnių, į kuriuos yra daugiausia nuorodų. (''''Duomenys ', uz, ''''').') from dual
union select _utf8'' from dual
union select _utf8'[[Kategorija:Vikipedijos statistika]]' from dual
union select _utf8'----' from dual
union select * from (
select concat(_utf8'# [[',replace(vp.p_title,_utf8'_',_utf8' '),_utf8']]',
       if(vp.p_soft_1 = 1,'{{Ref label|Note|1|1}}',''),
       if(vp.p_soft_2 = 1,'{{Ref label|Note|2|2}}',''),
       if(vp.p_soft_3 = 1,'{{Ref label|Note|3|3}}',''),
       if(vp.p_soft_4 = 1,'{{Ref label|Note|4|4}}',''),
       if(vp.p_soft_5 = 1,'{{Ref label|Note|5|5}}',''),
       if(vp.p_soft_6 = 1,'{{Ref label|Note|6|6}}',''),
       if(vp.p_soft_7 = 1,'{{Ref label|Note|7|7}}',''),
       if(vp.p_soft_8 = 1,'{{Ref label|Note|8|8}}',''),
       if(vp.p_soft_9 = 1,'{{Ref label|Note|9|9}}',''),
       if(vp.p_soft_10 = 1,'{{Ref label|Note|10|10}}',''),
       if(vp.p_soft_11 = 1,'{{Ref label|Note|11|11}}',''),
       _utf8' ([[:Specialus:Whatlinkshere/',
       replace(vp.p_title,_utf8'_',_utf8' '),_utf8'|',vpr.page_links_all-vpr.page_links_tusti-if(vtpr.page_links_all is null,0,vtpr.page_links_all),
       _utf8' nuorodos]])') AS title
from vikipedija_page vp
join vikipedija_page_refs vpr on (vp.p_title = vpr.page_title)
left join vikipedija_tpage_refs vtpr on (vp.p_title = vtpr.page_title)
where vpr.page_links_all-vpr.page_links_tusti-if(vtpr.page_links_all is null,0,vtpr.page_links_all) > 1
and vpr.page_links_all > vpr.page_links_tusti+if(vtpr.page_links_all is null,0,vtpr.page_links_all)
and (
  vp.p_soft_1 = 1 or
  vp.p_soft_2 = 1 or
  vp.p_soft_3 = 1 or
  vp.p_soft_4 = 1 or
  vp.p_soft_5 = 1 or
  vp.p_soft_6 = 1 or
  vp.p_soft_7 = 1 or
  vp.p_soft_8 = 1 or
  vp.p_soft_9 = 1 or
  vp.p_soft_10 = 1
)
and exists (
      select 1
      from categorylinks cl
      join Savaite g on (cl.cl_to = g.cat_title and g.cat_soft_parent < 2)
      where vp.p_id = cl.cl_from
      limit 1
    )
order by vpr.page_links_all-vpr.page_links_tusti-if(vtpr.page_links_all is null,0,vtpr.page_links_all) desc, vp.p_title
limit 1000) b
union select _utf8'== Išnašos ==' from dual
union select _utf8'* {{Note label|Note|1|1}} - [[:Kategorija:Nepilni|]]' from dual
union select _utf8'* {{Note label|Note|2|2}} - [[:Kategorija:Nesutvarkyti straipsniai|]]' from dual
union select _utf8'* {{Note label|Note|3|3}} - [[:Kategorija:Nebaigti-terminai|]]' from dual
union select _utf8'* {{Note label|Note|4|4}} - [[:Kategorija:Nepilni (Lietuvos gyvenvietės)|Nepilni (Lietuvos gyvenvietės)]]' from dual
union select _utf8'* {{Note label|Note|5|5}} - [[:Kategorija:Beviltiški|]]' from dual
union select _utf8'* {{Note label|Note|6|6}} - [[:Kategorija:Kandidatai jungti|]]' from dual
union select _utf8'* {{Note label|Note|7|7}} - [[:Kategorija:Kandidatai skaidyti|]]' from dual
union select _utf8'* {{Note label|Note|8|8}} - [[:Kategorija:Tušti straipsniai|]]' from dual
union select _utf8'* {{Note label|Note|9|9}} - [[:Kategorija:Kandidatai skubiai trinti|]]' from dual
union select _utf8'* {{Note label|Note|10|10}} - [[:Kategorija:Kandidatai trinti|]]' from dual
union select _utf8'* {{Note label|Note|11|11}} - [[:Kategorija:Nuorodiniai straipsniai|]]' from dual
INTO OUTFILE 'Trokstamiausi nebaigti tarptautineteise straipsniai.csv'
LINES TERMINATED BY '\r\n'
;

END $$

DELIMITER ;