我有一个mysql视图,其中1列在4行上重复,但另一列具有不同的值。我想通过给列自定义名称将所有4行合并为1。

mysql - 在mysql View 中合并多行-LMLPHP

例:

我在4行中用不同的Long_DescNutr_Val重复了Nutr_No。我想合并所有4行,以便表看起来像

NDB_No | Nutr_No | Nutr_Val | Long_Desc | PROCNT | FAT | CHODCDF | ENERC_KCAL


所以我在最后4列中调整了Nutr_Val

最佳答案

这可以通过条件聚合来解决:

SELECT
    t.nbd_no,
    t.nutr_no,
    t.nutr_val,
    t.long_desc,
    MAX(CASE WHEN t.tagname = 'PROCNT'     THEN t.fdgrp_cd END) PROCNT,
    MAX(CASE WHEN t.tagname = 'FAT'        THEN t.fdgrp_cd END) FAT,
    MAX(CASE WHEN t.tagname = 'CHODCDF'    THEN t.fdgrp_cd END) CHODCDF,
    MAX(CASE WHEN t.tagname = 'ENERC_KCAL' THEN t.fdgrp_cd END) ENERC_KCAL
FROM mytable t
GROUP BY
    t.nbd_no,
    t.nutr_no,
    t.nutr_val,
    t.long_desc

关于mysql - 在mysql View 中合并多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54498722/

10-11 02:59
查看更多