mysql 把行转换成列统计字段的合计数怎么实现?

img

把tags字段按值转换成列,统计相同tags下的wathtime的合计数,还要按学员区分。

最终效果是:

|   loginid  |        tags1      |         tags2       |        tags3       |
| gf10075  | watchtime合计| watchtime合计   | watchtime合计 |
| gf10074  | watchtime合计| watchtime合计   | watchtime合计 |
| gf10073  | watchtime合计| watchtime合计   | watchtime合计 |

sql 怎么写呢?

用case when子句统计
select loginid,sum(case when tags=1 then watchtimem else 0 end) as tags1,
sum(case when tags=2 then watchtimem else 0 end) as tags2,
sum(case when tags=3 then watchtimem else 0 end) as tags3
from table
group by loginid