SQL,python,knime将数据混合的文字数字拆出来,合并计算实战

将下面将数据混合的文字数字拆出来,合并计算
在这里插入图片描述

一、SQL解决:

---创建表插入数据
CREATE TABLE original_data (
    id INT AUTO_INCREMENT PRIMARY KEY,
    city VARCHAR(255),
    value DECIMAL(10, 2)
);

INSERT INTO original_data (city, value) VALUES
('上海0.5, 浙江0.5', NULL),
('北京0.5, 天津0.5', NULL),
('天津', 1.0),
('北京', 1.0),
('上海', 2.0),
('浙江', 3.0);
-- 使用WITH语句定义了一个名为split_values的公用表表达式(CTE)
WITH split_values AS (
    -- 选择city字段,使用SUBSTRING_INDEX函数分割字符串,获取第一个逗号前的值,并截取'0.5'之前的部分
    SELECT
        TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(city, ',', 1), '0.5', 1)) AS city, -- 去除可能的前后空白,并截取第一个城市名称
        0.5 AS value -- 硬编码分割后每个部分的值
    FROM original_data
    WHERE city LIKE '%,%' -- 只选择city字段包含逗号的记录
    UNION ALL
    -- 选择city字段,使用SUBSTRING_INDEX函数分割字符串,获取最后一个逗号后的值,并截取'0.5'之前的部分
    SELECT
        TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(city, ',', -1), '0.5', 1)) AS city, -- 去除可能的前后空白,并截取最后一个城市名称
        0.5 AS value
    FROM original_data
    WHERE city LIKE '%,%'
    UNION ALL
    -- 选择不包含逗号的city字段,即没有被分割的完整值
    SELECT
        city,
        value
    FROM original_data
    WHERE city NOT LIKE '%,%' -- 选择city字段不包含逗号的记录
),
-- 定义另一个名为filtered_values的CTE,用于过滤掉空或NULL的城市名称
filtered_values AS (
    SELECT
        city,
        value
    FROM
        split_values
    WHERE
        city IS NOT NULL AND city != '' -- 确保城市名称不为空
),
-- 定义第三个CTE,aggregated_values,用于对过滤后的城市名称进行分组并求和
aggregated_values AS (
    SELECT
        city,
        SUM(value) AS total_value -- 对每个城市的所有value值进行求和
    FROM
        filtered_values
    GROUP BY
        city
)
-- 最终选择语句,从aggregated_values CTE中选择城市和它们的总价值
SELECT
    city,
    total_value
FROM
    aggregated_values
ORDER BY
    city; -- 按城市名称排序结果

在这里插入图片描述

二、python解决:

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 06:04:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 06:04:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 06:04:03       45 阅读
  4. Python语言-面向对象

    2024-07-16 06:04:03       55 阅读

热门阅读

  1. docker使用教学

    2024-07-16 06:04:03       19 阅读
  2. docker build 建立镜像,多出很多 none 的中间层镜像

    2024-07-16 06:04:03       26 阅读
  3. React Native: 构建原生级移动应用的跨平台框架

    2024-07-16 06:04:03       26 阅读
  4. 克隆上游仓库后想切换远程仓库为派生仓库

    2024-07-16 06:04:03       22 阅读
  5. Redis的哨兵和集群实现高可用

    2024-07-16 06:04:03       22 阅读
  6. Go:函数

    2024-07-16 06:04:03       20 阅读
  7. 在Delphi中使用ATTACH语句合并SQLite数据库

    2024-07-16 06:04:03       19 阅读
  8. Log4j2原理及应用详解(二)

    2024-07-16 06:04:03       19 阅读
  9. 在Ubuntu 18.04上安装和保护phpMyAdmin的方法

    2024-07-16 06:04:03       21 阅读
  10. 66.函数指针和回调函数

    2024-07-16 06:04:03       19 阅读
  11. MySQL第七次作业

    2024-07-16 06:04:03       20 阅读