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'
你总是只期待周一和周五吗?是的,只期待周一和周五。你总是只期待周一和周五吗?是的,只期待周一和周五