如果一行的值满足,则对每列进行计数

  • 本文关键字:满足 一行 如果 sql
  • 更新时间 :
  • 英文 :


我一直在广泛搜索(双关语(,但还没有找到解决方案。

所以我得到了一张有19列的桌子。

against_bug
pokemonnameagainst_poisonagainst_psychicaganst_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

一个标准化的表如下所示:

<1><1>24
pokemonagainst_typeaganst_value
Pickachuagainst_bug
Pickachuagainst_dark2
Pickachuagainst_dragon0.5
Pickachu
Pickachu(etc((etc(
爆炸体against_bug
爆炸体against_dark
Blastoidagainst_dragon2
爆破体against_electric
Blastoid(etc((etc(

最新更新