码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SQL数据迁移实战:从产品层级信息到AB测试表


    文章目录

      • 创建表
      • 插入数据
      • 清空数据表
      • 数据迁移和筛选
      • 查询数据
      • 结论

    创建表

    首先,代码中定义了两个表格:dim_prod_hierarchy_info 和 app_abtest_product_info,都位于 test 数据库中。

    • dim_prod_hierarchy_info 表用于存储产品层级信息,有三列:hier_node_level_1_name, hier_node_level_2_name, hier_node_level_3_name。这些列分别存储产品的不同层级名称。
    • app_abtest_product_info 表用于存储产品信息,也有三列:prod_level_1, prod_level_2, prod_level_3,与第一个表的列功能类似。

    sql:

    CREATE TABLE test.dim_prod_hierarchy_info (
        hier_node_level_1_name VARCHAR(255),
        hier_node_level_2_name VARCHAR(255),
        hier_node_level_3_name VARCHAR(255)
    );
    
    CREATE TABLE test.app_abtest_product_info (
        prod_level_1 VARCHAR(255),
        prod_level_2 VARCHAR(255),
        prod_level_3 VARCHAR(255)
    );
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    插入数据

    接着,代码通过 INSERT INTO 语句向 dim_prod_hierarchy_info 表中插入了几行数据。这些数据代表不同类别的产品及其层级。

    代码如下:

    INSERT INTO test.dim_prod_hierarchy_info (hier_node_level_1_name, hier_node_level_2_name, hier_node_level_3_name) VALUES
    ('SmartPhone', 'Galaxy S21', 'S21 Ultra'),
    ('Tablet', 'Galaxy Tab', 'Tab S7'),
    ('SmartWatch', 'Galaxy Watch', 'Watch 3'),
    ('Earbuds', 'Galaxy Buds', 'Buds Live');
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    清空数据表

    在向 app_abtest_product_info 表插入数据之前,代码使用 DELETE FROM 语句删除了该表中的所有现有数据。这确保了表中没有旧数据。

    DELETE FROM test.app_abtest_product_info WHERE 1=1;
    
    • 1

    数据迁移和筛选

    最后,使用 INSERT INTO … SELECT 语句,从 dim_prod_hierarchy_info 表中选取特定的数据行,并将这些数据插入到 app_abtest_product_info 表中。这个查询只选择那些符合特定条件的行:hier_node_level_1_name 字段必须是预定义的产品类别之一,且 hier_node_level_3_name 不能为空。

    INSERT INTO test.app_abtest_product_info(prod_level_1, prod_level_2, prod_level_3)
    SELECT hier_node_level_1_name, hier_node_level_2_name, hier_node_level_3_name
    FROM test.dim_prod_hierarchy_info
    WHERE hier_node_level_1_name IN ('SmartPhone', 'Tablet', 'SmartWatch', 'Earbuds')
       AND hier_node_level_3_name IS NOT NULL
    GROUP BY hier_node_level_1_name, hier_node_level_2_name, hier_node_level_3_name;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    查询数据

    最后,使用一个简单的 SELECT * FROM 查询来查看 dim_prod_hierarchy_info 表中的数据。

    代码如下:

    SELECT * FROM test.dim_prod_hierarchy_info;
    
    • 1

    结论

    通过这个示例,用户可以学习如何创建和操作SQL表,包括如何插入、删除和迁移数据。这是数据库管理和数据分析中的一个重要技能,可以应用于各种实际场景。

  • 相关阅读:
    为什么会产生yarn,解决了什么问题,优势?
    数字孪生平台可视化常用三维建模方式和精细度分级
    口袋参谋:一键查询任意买家旺旺号,规避被降权风险!
    19-ESP32-S3外设IIC
    云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)
    Item 39: Consider void futures for one-shot event communication.
    核酸检测多少人为一组混检合适?
    如何用SourceInsight阅读大型源码-以Linux内核为例
    Kafka 开发架构的一些问题汇总
    【进阶版】 机器学习之K均值聚类、层次聚类、密度聚类、实战项目含代码(15)
  • 原文地址:https://blog.csdn.net/weixin_46211269/article/details/134533992
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号