gpt4 book ai didi

MySQL 添加汇总另一列数据的列

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

我在 MySQL 表中有一个列,其中存储了“困惑”的数据,如下所示:

**SIZE**
2
2-5
6-25
2-10
26-100
48
50

我想创建一个新列“RevTextSize”,将该列中的数据重写为预定义的值范围。

If Size=2, then "RevTextSize"= "1-5"
If Size=2-5, then "RevTextSize"= "1-5"
If Size=6-25, then "RevTextSize"="6-25"
...

这在Excel、SPSS等工具中很容易做到,但在MySQL表中怎么办呢?

最佳答案

您可以添加这样的列:

ALTER TABLE messy_data ADD revtextsize VARCHAR(30);

填充该列:

UPDATE messy_data
SET revtextsize
= CASE
WHEN size = '2' THEN '1-5'
WHEN size = '2-5' THEN '1-5'
WHEN size = '6-25' THEN '6-25'
ELSE size
END

这是一种强力方法,可识别 size 的每个不同值并指定替换值。

<小时/>

您可以使用另一个 SQL 语句来帮助您构建 CASE 表达式

  SELECT CONCAT('     WHEN size = ''',d.size,'''    THEN ''',d.size,'''') AS stmt
FROM messy_data d
GROUP BY d.size

将结果保存到您最喜欢的 SQL 文本编辑器中,然后修改替换值。这将加快为您需要运行以设置 revtextsize 列(第一个语句)的语句创建 CASE 表达式的速度。

如果你想构建一些“更智能”的东西,动态评估大小内容并做出明智的选择,那会涉及更多。如果要这样做,我会在第二个语句中执行此操作,生成 CASE 表达式。在运行更新语句之前,我更愿意检查一下。我更喜欢让更新语句做一些容易理解并且容易解释它在做什么的事情。

关于MySQL 添加汇总另一列数据的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36490980/

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