Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 基于上一列添加另一个不同的列_Mysql_Sql_Postgresql - Fatal编程技术网

Mysql 基于上一列添加另一个不同的列

Mysql 基于上一列添加另一个不同的列,mysql,sql,postgresql,Mysql,Sql,Postgresql,假设我在数据库中有这样一个表 Name Day VALUE1 VALUE2 ======================== A mon 1 2 A fri 2 2 我想要像这样 Name VALUE1(mon) VALUE2(mon) VALUE1(fri) VALUE2(fri) ===================================================== A 1

假设我在数据库中有这样一个表

Name  Day  VALUE1  VALUE2
========================
A     mon      1       2
A     fri      2       2
我想要像这样

Name  VALUE1(mon)  VALUE2(mon)  VALUE1(fri)  VALUE2(fri)
=====================================================
A        1             2            2            2

我可以做这样的东西吗?如果可以,请告诉我如何使用查询进行此操作

您可以使用pivot查询:

选择
名称
最大值(当日='mon'然后值1结束时的情况)为“VALUE1(mon)”,
最大值(当日='mon'然后值2结束时的情况)为“VALUE2(mon)”,
最大值(当日='fri'然后值1结束时的情况)为“值1(fri)”,
最大值(日='fri'然后值2结束时的情况)为“值2(fri)”
从你的桌子上
按名称分组;

您可以使用透视查询:

选择
名称
最大值(当日='mon'然后值1结束时的情况)为“VALUE1(mon)”,
最大值(当日='mon'然后值2结束时的情况)为“VALUE2(mon)”,
最大值(当日='fri'然后值1结束时的情况)为“值1(fri)”,
最大值(日='fri'然后值2结束时的情况)为“值2(fri)”
从你的桌子上
按名称分组;

您可以按如下方式进行自完全外部联接:

Select coalesce(m.day,f.day) as day,
       M.value1 as monval1,
       M.value2 as monval2,
       F.value1 as frival1,
       F.value2 as frival2
  From your_table m full outer join your_table f
    On m.name = f.name 
   And m.day = 'mon' and f.day = 'fri'

您可以按如下方式进行自完全外部联接:

Select coalesce(m.day,f.day) as day,
       M.value1 as monval1,
       M.value2 as monval2,
       F.value1 as frival1,
       F.value2 as frival2
  From your_table m full outer join your_table f
    On m.name = f.name 
   And m.day = 'mon' and f.day = 'fri'

你总是只期待周一和周五吗?是的,只期待周一和周五。你总是只期待周一和周五吗?是的,只期待周一和周五