Skip to content

Instantly share code, notes, and snippets.

@mandel59
Last active July 13, 2022 19:03
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 mandel59/8a7cd6cca228723e248d5fccbd41e69a to your computer and use it in GitHub Desktop.
Save mandel59/8a7cd6cca228723e248d5fccbd41e69a to your computer and use it in GitHub Desktop.
https://twitter.com/mandel59/status/1547293802565496832 常用漢字と対応する規範字で画数を比べて、常用漢字の方が画数が少ない字を抜き出したもの。元ネタ: https://twitter.com/tubatuubaa/status/1547122155116146688
-- SQLite
WITH
joyo_itaiji (常用漢字, 異体字) AS (
SELECT DISTINCT joyo_kangxi.漢字 AS 常用漢字, joyo_kangxi.康熙字典体 AS 異体字
FROM joyo_kangxi
UNION
SELECT DISTINCT joyo.漢字, joyo.漢字
FROM joyo
),
joyo_zvar (常用漢字, 異体字) AS (
SELECT DISTINCT joyo_itaiji.常用漢字, unihan_variant.value AS 異体字
FROM joyo_itaiji
JOIN unihan_variant
ON unihan_variant.property = 'kZVariant' AND unihan_variant.UCS = joyo_itaiji.異体字
UNION
SELECT DISTINCT joyo_itaiji.常用漢字, mji.実装したUCS
FROM joyo_itaiji
JOIN mjsm_JIS包摂規準UCS統合規則 ON joyo_itaiji.異体字 = mjsm_JIS包摂規準UCS統合規則.縮退UCS
JOIN mji ON mji.MJ文字図形名 = mjsm_JIS包摂規準UCS統合規則.MJ文字図形名
WHERE mji.実装したUCS IS NOT NULL
UNION
SELECT DISTINCT 常用漢字, 異体字 FROM joyo_itaiji
UNION
VALUES ('羨', '羡'), ('舎', '舍'), ('舗', '舖'), ('諮', '咨'), ('駄', '馱'), ('𠮟', '叱')
),
kihanji (異体字, 規範字, 註解) AS (
SELECT DISTINCT tghb_variants.异体字, tghb_variants.规范字, tghb_variants.註解 FROM tghb_variants
UNION
SELECT DISTINCT tghb.规范字, tghb.规范字, NULL FROM tghb
UNION
SELECT DISTINCT unihan_variant.UCS, unihan_variant.value, NULL FROM unihan_variant
WHERE unihan_variant.property = 'kSimplifiedVariant'
AND unihan_variant.value IN (SELECT tghb.规范字 FROM tghb)
),
jg AS (
SELECT
常用漢字,
規範字 AS 規範字,
group_concat(DISTINCT kihanji.註解) AS 註解
FROM joyo_zvar LEFT JOIN kihanji ON joyo_zvar.異体字 = kihanji.異体字
GROUP BY 常用漢字, 規範字
),
j_kakusu AS (
SELECT mji.実装したUCS AS 常用漢字, mji.総画数 FROM mji WHERE mji.漢字施策 = '常用漢字'
),
g_kakusu AS (
SELECT tghb.规范字 AS 規範字, tghb.笔画 AS 笔画 FROM tghb
)
SELECT jg.常用漢字, 総画数, jg.規範字, 笔画, 註解
FROM jg
LEFT JOIN j_kakusu ON j_kakusu.常用漢字 = jg.常用漢字
LEFT JOIN g_kakusu ON g_kakusu.規範字 = jg.規範字
WHERE 総画数 < 笔画
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment