sql查询中遇到的一些小小注意点

news2024/11/26 8:28:55

1.sql子查询

// 最外层查询是查子查询中查询出来的结果
SELECT
        serverId,
        sum(revenue) as revenue,
        sum(orderCount) as orderCount,
        sum(refundCount) as refundCount,
        sum(guideRevenue) as guideRevenue,
        sum(cardCount) as cardCount,
        sum(activityCount) as activityCount,
        sum(unBindCount) as unBindCount,
        sum(bindCount) as bindCount,
        storeName,
        guideName,
        guideId,
        shopId
        FROM(
        // 子查询
        SELECT
        DISTINCT sgcd.server_id AS serverId,
        sgcd.revenue AS revenue,
        sgcd.pay_order_count AS orderCount,
        sgcd.refund_order_count AS refundCount,
        sgcd.guide_income AS guideRevenue,
        sgcd.coupon_count AS cardCount,
        sgcd.activity_count AS activityCount,
        sgcd.unbind_count AS unBindCount,
        sgcd.new_count AS bindCount,
        store.store_name AS storeName,
        emp.employee_name AS guideName,
        sgcd.guide_id AS guideId ,
        sgcd.shop_id as shopId
        from ser_guide_core_data sgcd
        left join usr_employee emp on sgcd.guide_id = emp.server_id
        left join server_stores store on sgcd.shop_id = store.server_id
        <where>
            sgcd.sys_id = #{sysId}
            <if test="startTime!=null">
                and sgcd.create_date <![CDATA[ >= ]]> STR_TO_DATE(#{startTime}, '%Y-%m-%d %H:%i:%s' )
            </if>
            <if test="endTime!=null">
                and sgcd.create_date <![CDATA[ <= ]]>  STR_TO_DATE(#{endTime}, '%Y-%m-%d %H:%i:%s')
            </if>
            <if test="guideName!=null and guideName!=''">
                and emp.employee_name like concat('%',#{guideName},'%')
            </if>
            <if test="storeName!=null and guideName!=''">
                and store.store_name like concat('%',#{storeName},'%')
            </if>
            <if test="storeOrGuideName!=null and storeOrGuideName!=''">
                and (store.store_name like concat('%',#{storeOrGuideName},'%')
                or emp.employee_name like concat('%',#{storeOrGuideName},'%'))
            </if>
            <if test="shopIds!=null and shopIds.size()!=0">
                and sgcd.shop_id in
                <foreach collection="shopIds" separator="," open="(" close=")" item="shopId">
                    #{shopId}
                </foreach>
            </if>
            <if test="empId!=null">
                and sgcd.guide_id=#{empId}
            </if>
        </where>
        )a
        // 这里一定要有一个临时表定义
        GROUP BY shopId,guideId
        order by storeName ASC,revenue DESC,guideId desc

2.mybatis xml中>;<等符号的拼接方法在这里插入图片描述

3.SQL数据表两个字段关联同一张数据表

  1. 数据表temp结构
-- Table "temp" DDL
 
CREATE TABLE `temp` (
  `page_id` bigint(20) DEFAULT NULL,
  `section_id` bigint(20) DEFAULT NULL,
  `visit_category_id` bigint(20) DEFAULT NULL,
  `cart_category_id` bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  1. 数据表category结构
-- Table "category" DDL
 
CREATE TABLE `category` (
  `category_id` bigint(20) DEFAULT NULL,
  `category_name` varchar(128) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

业务需求
关联temp表和category表,取出visit_category_id和cart_category_id对应的category_name

解决方案
使用两个表命名即可

select a.page_id,
a.section_id,
a.visit_category_id,
b.category_name,
a.cart_category_id,
c.category_name 
from temp a 
// 关联一
left outer join category b on (a.visit_category_id=b.category_id) 
// 关联二
left outer join category c on (a.cart_category_id=c.category_id);

4.截断删除和del的差别

truncate:会清空表中所有的数据,速度快,不可回滚;实质是删除整张表包括数据再重新创建表;
delete:逐行删除数据,每步删除都是有日志记录的,可以回滚数据;实质是逐行删除表中的数据;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

笔试强训(7)

第一题:两种排序方法(网易)两种排序方法_牛客题霸_牛客网 题目描述:考拉有N个字符串&#xff0c;任意两个字符串的长度都不是相同的&#xff0c;考拉现在学习到了两种字符串的排序方法 1)根据字符串的字典序排序&#xff0c;比如说 "car"<"carriage"<…

CodeQL的自动化代码审计之路(下篇)

0x01 前言 CodeQL的自动化代码审计之路&#xff08;上篇&#xff09; CodeQL的自动化代码审计之路&#xff08;中篇&#xff09; 在上一篇文章中&#xff0c;我们基于CodeQL官方提供的sdk实现了自动化查询数据库功能&#xff0c;在文章中也提到实现完整的自动化代码审计还缺…

ggokabeito | 一般般啵~支持ggplot2和ggraph的配色包!~

1写在前面 天真的好冷啊&#xff0c;不知道各位穿秋裤了没有&#xff0c;有没有感冒。&#x1f618; 这期就介绍一下ggokabeito包&#xff0c;是一个支持ggplot2和ggraph的即用型配色包&#xff0c;喜欢就去安装吧。&#x1f92a; 再放一张去年拍的雪人照片&#xff0c;哈哈哈哈…

socket网络编程的5大误区

隐患 1&#xff0e;忽略返回状态 第一个隐患很明显&#xff0c;但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态&#xff0c;当它们失败或部分成功的时候&#xff0c;您也许会迷失。反过来&#xff0c;这可能传播错误&#xff0c;使定位问题的源头变得困难。 捕…

c++算法基础必刷题目——枚举

文章目录枚举算法1、铺地毯2、回文日期枚举算法 枚举算法是我们在日常中使用到的最多的一个算法&#xff0c;它的核心思想就是:枚举所有的可能。   枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件&#xff1a;   (1)可预先确定候选答案的数量…

[Square 2022] Hard Copy 复现

原来一直没弄过TLS的流&#xff0c;今天看到一个WP&#xff0c;按这个一步步重来一遍。 Square的题目会一直开放下载 原题点这里 下来后的数据包包含一个go的原码程序和一个流量包 流量是经过加密的&#xff0c;所以看不到内容。 第一步就是取得RSA的公钥。先在包里找到 S…

跟海外大牌正面PK,中国品牌如何出圈?

摘要&#xff1a;品牌出海看似风光无限、满是商机&#xff0c;但拆解开来看&#xff0c;无论是打造品牌还是出海&#xff0c;都是很漫长的过程。 导语&#xff1a; 后疫情时代&#xff0c;品牌出海成为大势所趋&#xff0c;从蒙牛、花西子到蜜雪冰城&#xff0c;越来越多的品…

web前端框架Javascript开发基础之JavaScript作用域

在JavaScript中&#xff0c;对象和函数也是变量。在JavaScript中&#xff0c;作用域是你可以访问的变量、对象和函数的集合。JavaScript有函数作用域: 这个作用域在函数内变化。 一、本地JavaScript变量 一个变量声明在JavaScript函数内部&#xff0c;成为函数的局部变量。 …

智慧物联网无线协同代理技术解决方案: 边缘协同感知(EICS)技术解密

无线协同代理技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策&#xff0c;属于蓝奥声核心技术–边缘协同感知(EICS&#xff09;技术的关键支撑性技术之一。该项技术涉及物联网边缘域的无线通信技术领域&#xff0c;具体主要涉及网络服务节点与目标对象设备…

Hive+Spark离线数仓工业项目--ODS层及DWD层构建(1)

目标&#xff1a;自动化的ODS层与DWD层构建实现 - 掌握Hive以及Spark中建表的语法规则 - 实现项目开发环境的构建 - 自己要实现所有代码注释 - ODS层与DWD层整体运行测试成功 数仓分层回顾 目标&#xff1a;回顾一站制造项目分层设计 实施 ODS层 &#xff1a;原始数…

Vulnhub:Derpnstink靶机渗透

攻击机kali&#xff1a;192.168.56.108 靶机derpnstink&#xff1a;192.168.56.114 扫描同网段下存活主机 扫描服务版本信息 开启了21、22、80端口&#xff0c;分别对应着ftp、ssh、http服务&#xff0c;打开浏览器进行访问 查看源代码发现flag1和info.txt 点开info.txt 这个的…

volantis使用php实现Gitee友链

介绍 本文使用Gitee实现Volantis主题友链功能&#xff0c;其中友链使用的是site标签&#xff0c;因为该标签可以展示图片&#xff0c;如 {% sites repo:example.json api:https://example.dearxuan.com %} 友链api的最终路径为 api “版本” repo&#xff0c;如上面代码的最…

【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位(经纬度坐标与平面坐标转换法求解、几何绘图法求解)

【精准三点定位求解汇总】利用Python或JavaScript高德地图开放平台实现精准三点定位&#xff08;经纬度坐标与平面坐标转换法求解、几何绘图法求解&#xff09; 众所周知&#xff0c;如果已知三个点的坐标&#xff0c;到一个未知点的距离&#xff0c;则可以利用以距离为半径画…

初学Nginx

目录 &#xff08;一&#xff09;Nginx介绍 &#xff08;二&#xff09;Nginx安装和启动 1&#xff0c;Nginx的目录结构 2&#xff0c;查看Nginx版本指令 3&#xff0c;检查配置文件是否正确 4&#xff0c;启动和关闭Nginx服务 &#xff08;三&#xff09;Nginx的配置 1&a…

智能工厂数字孪生的运用

信息技术与制造业的融合是当前的发展趋势&#xff0c;数字孪生其中 就包括了“智能工厂”的技术。在过去几年的发展中&#xff0c;我国的工业企业已经初步形成了 5 层的信息化体系结构&#xff0c;而在新一代的智能工厂体系中&#xff0c;借助数字孪生技术让工厂实现智能化生产…

SpringMVC使用Jackson、双向关联的解决策略@JsonIgnore

目录:一、SpringMVC和Jackson的关系&#xff1a;二、Jackson解决双向关联导致的栈溢出问题的解决方法&#xff1a;三、如何使用JsonIgnore&#xff1a;一、SpringMVC和Jackson的关系&#xff1a; SpringMVC返回return Object类型数据给前端时会自动调用jackson将Object类型的数…

pytorch深度学习常用命令

文章目录命令目录.item().items&#xff08;&#xff09;最大值的索引torch.argmax(input, dimNone, keepdimFalse)_, predicted torch.max(outputs.data, 1).data.detachunsqueeze()squeeze()命令目录 .item() 只是一个值 &#xff08;浮点型的&#xff09;&#xff0c;适合…

计算机基础知识(基础入门小白专属)三

♥️作者&#xff1a;小刘在这里 ♥️每天分享云计算网络运维课堂笔记&#xff0c;疫情之下&#xff0c;你我素未谋面&#xff0c;但你一定要平平安安&#xff0c;一 起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放&#xff0c;…

精通MyBatis原理,看这两篇就够了!|原创

本文详细介绍了阅读MyBatis源码的学习思路&#xff0c;并且对源码做了详细注释&#xff0c;讲解了整个Mybatis的启动过程。本文篇幅较长&#xff0c;建议收藏阅读&#xff0c;非常适合用于面试前的重点复习。点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c…

BSV 上的零知识隐私机器学习

此前&#xff0c;我们已经演示了在 BSV 上运行一个成熟的深度神经网络&#xff0c;其中机器学习 (ML) 算法的输入和模型都是公开的。在实践中&#xff0c;通常希望将输入或模型保持在链下并因此保持私有&#xff0c;同时仍确保 ML 算法如实运行。我们通过将零知识证明 (ZKP) 应…