gpt4 book ai didi

mysql - 将一个表转换为另一个行数较少的表?

转载 作者:行者123 更新时间:2023-11-29 13:18:43 24 4
gpt4 key购买 nike

我在oracle db中有一个表,它由三个字段(名称,id,计数)组成。 Id 范围为 1 到 4,均包括在内。

例如表中的数据如下

+----+--+-----+
|Name|Id|Count|
+----+--+-----+
|A |2 |5 |
+----+--+-----+
|A |3 |15 |
+----+--+-----+
|B |1 |10 |
+----+--+-----+
|B |2 |12 |
+----+--+-----+
|B |4 |6 |
+----+--+-----+

现在我的问题是制作如下表,例如头部部分中的名称和ID以及相应位置中的计数。

上面示例表的结果如下所示。

+----+------+------+------+------+
|Name|Id(=1)|Id(=2)|Id(=3)|Id(=4)|
+----+------+------+------+------+
|A |0 |5 |15 |0 |
+----+------+------+------+------+
|B |10 |12 |0 |6 |
+----+------+------+------+------+

这一刻我很震惊。有可能吗?请帮助我。

感谢您的帮助。

提前谢谢您。

最佳答案

您需要枢轴隔离。您可以在语句中使用 case when .. 来实现。

select 
name,
case `id`
when 1 then `count` else 0 end as 'id=1',
case `id`
when 2 then `count` else 0 end as 'id=2',
...
from my_table

您还可以使用 if(... 函数:

select 
name,
if(`id`=1, `id`, 0 ) as 'id=1',
if(`id`=2, `id`, 0 ) as 'id=2',
...
from my_table

关于mysql - 将一个表转换为另一个行数较少的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21156193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com