我一直在广泛搜索(双关语(,但还没有找到解决方案。
所以我得到了一张有19列的桌子。
pokemonname | against_bugagainst_poison | against_psychic | aganst_rock水 |
---|
请查看Stu对您问题的评论中的建议。使你的桌子正常化会有很大帮助。
现在你需要做这样的事情:
SELECT
pokemon,
CASE WHEN against_bug >= 2 THEN 1 ELSE 0 END +
CASE WHEN against_dark >= 2 THEN 1 ELSE 0 END +
CASE WHEN against_dragon >= 2 THEN 1 ELSE 0 END +
CASE WHEN against_electric >= 2 THEN 1 ELSE 0 END +
--[....repeat this for all your columns....]
FROM your_table
一个标准化的表如下所示:
pokemon | against_type | aganst_value |
---|---|---|
Pickachu | against_bug | <1>|
Pickachu | against_dark | 2 |
Pickachu | against_dragon | 0.5 |
Pickachu | ||
Pickachu | (etc( | (etc( |
爆炸体 | against_bug | <1>|
爆炸体 | against_dark | 2|
Blastoid | against_dragon | 2 |
爆破体 | against_electric | 4|
Blastoid | (etc( | (etc( |