请帮帮我。
我在 mysql 中的表是这样的:
kd_mapel|Sem1 |Sem2 |Sem3 EKO-001 |79 |NULL |NULL EKO-002 |NULL |80 |NULL FIS-001 |77 |NULL |NULL FIS-002 |NULL |76 |NULL FIS-201 |NULL |NULL |81 GEO-001 |79 |NULL |NULL INA-001 |79 |NULL |NULL INA-002 |NULL |80 |NULL INA-003 |NULL |NULL |79 ING-001 |77 |NULL |NULL ING-002 |NULL |79 |NULL ING-003 |NULL |NULL |80
预期结果是:
kd_mapel|Sem1 |Sem2 |Sem3 EKO |79 |80 |NULL FIS |77 |76 |81 GEO |79 |NULL |NULL INA |79 |80 |79 ING |77 |79 |80
这些结果是否可以使用 mysql 代码?如何?
谢谢。
最佳答案
试试这个查询
select substring(kd_mapel, 1, locate("-", kd_mapel)-1) as kd,
max(sem1), max(sem2), max(sem3)
from tbl
group by kd
FIDDLE
| KD | MAX(SEM1) | MAX(SEM2) | MAX(SEM3) |
-------------------------------------------
| EKO | 79 | 80 | (null) |
| FIS | 77 | 76 | 81 |
| GEO | 79 | (null) | (null) |
| INA | 79 | 80 | 79 |
| ING | 77 | 79 | 80 |
如果你有多个 kd_mapel 的 sem 记录,你甚至可以使用 sum 函数。
关于MySQL : how to group multiple row into one row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16849660/