使用Wmflabs的“Quarry”(https://quarry.wmflabs.org/)。
据我所知,这是MySQL。
如何选择德国维基的所有文章,这些文章的大小比enwiki中的文章更大?
以下是我使用的代码。我需要de_len,但我不知道如何获得它。
USE enwiki_p;
SELECT
page_title en_title,
page_len en_len,
ll.ll_title as de_title
FROM page
JOIN langlinks ll
ON ll_from = page_id
WHERE page_namespace = 0
GROUP BY page_id
HAVING max(CASE ll_lang WHEN 'de' THEN 1 ELSE 0 END) = 0
LIMIT 10
答案 0 :(得分:1)
您需要使用两个数据库中至少三个表来从两个wiki中获取相应文章(页面)的正确页面大小,以及关系的相关中间语言链接,以进行良好的比较。 解决方案是:
SELECT
enp.page_title as en_title,
enp.page_len as en_len,
dep.page_title as de_title,
dep.page_len as de_len
FROM enwiki_p.page enp
JOIN enwiki_p.langlinks enll
ON enll.ll_from = enp.page_id and ll_lang="de"
JOIN dewiki_p.page dep
ON enll.ll_title = REPLACE(dep.page_title, '_', ' ')
WHERE enp.page_namespace = 0 and enp.page_is_redirect = 0
AND dep.page_namespace = 0 and dep.page_is_redirect = 0
GROUP BY enp.page_id
HAVING dep.page_len > enp.page_len
ORDER BY dep.page_len DESC
LIMIT 100