SQL小示例

SQL示例

一、前言

  • 安装MySQL

  • 启动MySQL

MySQL is configured to only allow connections from localhost by defaultTo connect run:mysql -u rootTo start mysql now and restart at login:brew services start mysql
  • 下载客户端工具Sequel Ace并登录

二、示例SQL

  • where过滤数据

使用where过滤数据

SELECT*
FROMactor
WHERElast_name = 'ALLEN' OR last_name = 'DAVIS'
ORDER BY `actor_id`;

where可以和and或者or联合使用,来圈定条件;常见的比较符:

=、<>、!=、>、<、>=、<=、IN、NOT IN、BETWEEN、LIKE、IS NULL、IS NOT NULL
  • case when示例

统计address表格中,postal_code在区间的分布

select sum(
case when `postal_code` < 1000 then 1 else 0 
end
) as c1,sum(
case when (`postal_code` < 5000 and `postal_code`>=1000) then 1 else 0 
end
) as c2,sum(
case when (`postal_code` < 10000 and `postal_code`>=5000) then 1 else 0 
end
) as c3,sum(
case when (`postal_code`>=10000) then 1 else 0 
end
) as c4from address;
  • 派生表的子查询

通过派生表temp1,统计符合条件的数量

select 
count(*) as cnt 
from(SELECT *FROM actorWHERE last_name = 'ALLEN' OR last_name = 'DAVIS'ORDER BY `actor_id`) temp1;
  • 常见通用格式(统计数字)
SELECT  t1.a1    -- 所有要展示的字段,都写在这里,可能不止来源一个表,t1.a2,COUNT(DISTINCT t1.a1) AS cnt,t2.a3,t2.a4
FROM    t1    -- 来源于第一个表
LEFT JOIN (SELECT  a3,a4FROM    xxxWHERE   ds = 'xxx') t2    -- 第二个表
ON      t1.id = t2.id    -- JOIN的关联条件
WHERE   t1.a1 = 'xx'    -- 过滤条件
AND     t1.ds = '20230711'
AND     t1.a1 IS NOT NULL
GROUP BY t1.a1    -- 分组:注意,所有select中出现的字段(除聚合函数外),都需要出现在GROUP BY中,t1.a2,t2.a3,t2.a4
HAVING  cnt > 0    -- 对分组统计之后的最终数据做一个过滤,这里可以直接使用聚合函数as之后的别名
ORDER BY cnt DESC    -- 排序
LIMIT 30
;

1.执行顺序:->from (去加载t1 和 t2这2个表 ) -> join -> on -> where -> group by->select 后面的聚合函数count,sum -> having -> distinct -> order by -> limit

2.FROM 子句执行顺序为从后往前、从右到左

  • 查询最近几天某城市的xx
SELECT  ds,SUM(CASE WHEN cnt >= 1 THEN 1 ELSE 0 END) AS fake_cnt_android,COUNT(*) AS all_cnt_android
FROM    (SELECT  user_id AS id,SUM(CASE WHEN (location_type = '21' OR location_type = '25') THEN 1 ELSE 0 END) AS cnt,dsFROM    xxxxxxxxWHERE   ds IN ('20230623','20230624','20230625','20230626','20230627')AND     city_name = 'xx市'AND     location_type IS NOT NULL -- 过滤掉无效数据AND     location_type != -1 -- 过滤掉xxxGROUP BY ds,id) id_cnt
GROUP BY ds
;
  • 一个数据开发的ODPS SQL示例
CREATE TABLE IF NOT EXISTS temp_xxx
(city       STRING COMMENT '城市',line_name STRING COMMENT 'xxx',fake_cnt  BIGINT COMMENT 'xx数量',all_cnt   BIGINT COMMENT '总数量',ratio     STRING COMMENT '百分比'
)
COMMENT 'xxx情况表'
PARTITIONED BY 
(ds         STRING COMMENT 'day 分区字段'
)
LIFECYCLE 30
;INSERT OVERWRITE TABLE temp_xxx PARTITION (ds='${bizdate}')
SELECT  city,line_name,fake_cnt,all_cnt,CONCAT(CAST(ROUND(100 * fake_cnt / all_cnt,2) AS STRING),'%') AS ratio
FROM    (SELECT  CASE    modeWHEN 'xx' THEN 'xxxxx'WHEN 'xx' THEN 'xxxxx'ELSE 'xxxxxx'END AS line_name,city,SUM(CASE WHEN cnt >= 1 THEN 1 ELSE 0 END) AS fake_cnt,COUNT(*) AS all_cntFROM    (SELECT  rider_._id,SUM(CASE WHEN location_type = '21' THEN 1 ELSE 0 END) AS cnt,ds,rider_.city_name AS city,id_mode.tms_line_name AS modeFROM    xxxxxxxxxx AS rider_LEFT JOIN   (SELECT  _id AS id,tms_line_nameFROM    xxxxxxxx.xxxdiWHERE   ds = '${bizdate}'AND     tms_line_name IS NOT NULL) id_modeON      id_mode.id = rider_._idWHERE   ds = '${bizdate}'AND     _id IS NOT NULL AND     city_id IN ('91','66')AND     location_type IS NOT NULL -- 过滤掉无效数据GROUP BY ds,rider_._id,mode,rider_.city_name) id_cntGROUP BY city,line_name --GROUP BY ROLLUP(city,mode)) mod_cnt
;

其中bizdate可以在调度配置中设置

参考资料:https://help.aliyun.com/zh/maxcompute/

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

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

相关文章

windows安装使用 tesseract-ocr

OCR&#xff08;Optical character recognition&#xff0c;光学字符识别&#xff09;是一种将图像中的手写字或者印刷文本转换为机器编码文本的技术。 tesseract-ocr 是由Google开发&#xff0c;支持100多种语言 文档 tessdoc&#xff1a; https://tesseract-ocr.github.io…

浅谈炼钢厂能源计量管理系统的设计与应用

安科瑞 华楠 摘要: 从能源计量和管理的角度&#xff0c;论述了炼钢厂的能源计量管理系统的基本组成及功能。该系统的建立&#xff0c;将使炼钢厂能源介质的计量管理工作实现自动采集、瞬时监测、故障报警、能流监视&#xff1b;完成报表统计、离线输入、成本分析、预测参考等功…

【Java项目实战-牛客社区】--idea创建springboot工程

①. 创建springboot工程&#xff0c;并勾选web开发相关依赖。 。配置Maven ②. 定义Controller类&#xff0c;添加方法 hello。 ③. 运行测试1 使用Spring Initializr方式构建Spring Boot项目 Spring Initializr是一个Web应用&#xff0c;它提供了一个基本的项目结构&#xff…

ansible特点、工具合集、搭建、命令合集

目录 一、ansible特点 二、ansible应用 三、ansible搭建 1、 实验环境&#xff0c;准备三台服务器&#xff0c;关闭防火墙 2、在ansible&#xff08;192.168.1.12&#xff09;服务器上yum安装ansible 3、创建ssh免交互登录 四、ansible配置 五、ansible命令 1&#xf…

手机外壳缺陷视觉检测软硬件方案

单独使用一种光源效果图 同轴光会出现亮度不够的情况&#xff1b;回形面光因为光源中间的圆孔会使图像有阴影&#xff0c;造成图像效果不均衡&#xff0c;所以不采用单独光源打光 使用同轴回形面光源效果图 回形光源照亮产品要寻找的边缘&#xff0c;同轴光源起到补光的作用&a…

SpringCloud学习路线(6)—— 远程调用HTTP客户端Feign

一、Feign替代RestTemplate RestTemplate示例 String url "http://userservice/user/" order.getUserId(); User user restTemplate.getForObject(url, User.class);RestTemplate的缺陷&#xff1a; 代码可读性差&#xff0c;编码体验不统一。参数复杂URL难以维…

需求分析案例:全局错误码设计

本文介绍了我在一些业务系统中遇到的错误提示问题&#xff0c;以及进行需求分析和设计实现的过程&#xff0c;欢迎进行交流和指点&#xff0c;一起进步。 1、需求起源 作为程序员&#xff0c;或多或少&#xff0c;都经历过如下场景&#xff1a; 场景1&#xff1a; 产品经理&a…

智慧校园能源管控系统

智慧校园能源管控系统是一种搭载了物联网技术、大数据技术、大数据等技术性智能化能源管理方法系统&#xff0c;致力于为学校提供更高效、安全性、可信赖的能源供应管理和服务。该系统包括了校内的电力工程、水、气、暖等各类能源&#xff0c;根据对能源的实时检测、数据统计分…

Django 创建应用

第一步&#xff1a;python.exe .\manage.py startapp submit_score 创建后生成的submit_score文件夹&#xff0c;里面文件如下&#xff1a; PS E:\code\portrait> python.exe .\manage.py startapp submit_score PS E:\code\portrait> ls目录: E:\code\portraitMode …

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题

文心一言 VS 讯飞星火 VS chatgpt &#xff08;63&#xff09;-- 算法导论6.5 2题 二、试说明 MAX-HEAP-INSERT(A&#xff0c;10)在堆A(15&#xff0c;13&#xff0c;9&#xff0c;5&#xff0c;12&#xff0c;8&#xff0c;7&#xff0c;4&#xff0c;0&#xff0c;6&#xf…

leetcode 13. 罗马数字转整数

罗马转整数要考虑先后顺序 当排在前面的罗马数字大于后面的罗马数字&#xff0c;就正常化成阿拉伯数字相加 如果小&#xff0c;那就是将小的数转成负数&#xff0c;再加就ok。 但也是需要模拟的&#xff0c;就是哪一字母代表哪个数值。 class Solution:def romanToInt(self, s…

【业务功能篇48】后端接口开发的统一规范

业务背景&#xff1a;日常工作中&#xff0c;我们开发接口时&#xff0c;一般都会涉及到参数校验、异常处理、封装结果返回等处理。而我们项目有时为了快速迭代&#xff0c;在这方面上有所疏忽&#xff0c;后续导致代码维护比较难&#xff0c;不同的开发人员的不同习惯&#xf…

2.3 QLayout一探究竟(上)

2.布局 2.1 布局简介 2.2 Qt四大布局介绍及使用方法 2.2.1 QBoxLayout讲解及示例 2.2.1.1 QHBoxLayout介绍 2.2.1.1 QVBoxLayout介绍 2.2.2 QFormLayout讲解及示例 2.2.3 QGridLayout讲解及示例 2.2.4 QStackedLayout讲解及示例 2.3 QLayout一探究竟 2.3.1 布局的基础单元-QL…

HTTP进化史:从HTTP1的简单到HTTP3的强大

文章目录 &#x1f4c8;I. HTTP1⚡A. 基本特点⚡B. 特点⚡C. 优缺点 &#x1f4c8;II. HTTP2⚡A. 基本特点⚡B. 特点⚡C. 优缺点 &#x1f4c8;III. HTTP3⚡A. 基本特点⚡B. 特点⚡C. 优缺点 &#x1f4c8;IV. 总结&#x1f4c8;附录&#xff1a;「简历必备」前后端实战项目&am…

[RK3568] AMP架构

Rockchip 平台异构多系统 AMP&#xff08;非对称多核架构&#xff09;的开发软件包&#xff0c;支持 Linux(Kernel-4.19)、 Baremetal(HAL)、RTOS(RT-Thread) 组合AMP构建形式。 Baremetal(HAL) Baremetal表示裸机操作系统&#xff0c;HAL是裸机操作系统的一种。 裸机嵌入式系…

MySQL不适合创建索引的7种情况

1. 在where中使用不到的字段&#xff0c;不要设置索引 WHERE条件&#xff08;包括order by &#xff0c;group by&#xff09; 2. 数据量小的表最好不要使用索引 表记录太少&#xff0c;比如少于1000个&#xff0c;创建索引会先查索引&#xff0c;再回表&#xff0c;查询花费…

01 QT命名规范,快捷键

命名规范&#xff1a; 类名首字母大写&#xff0c;单词和单词之间首字母大写函数名、变量名 首字母小写&#xff0c;单词和单词之间首字母大写 快捷键&#xff1a; 运行&#xff1a;ctrl r 编译&#xff1a;ctrl b 注释&#xff1a;ctrl / 字体缩放&#xff1a;ctrl 鼠…

设计模式之工厂模式-简单工厂、工厂方法、抽象工厂模式

工厂模式是一种常见的创建型设计模式&#xff0c;它提供了一种创建对象的方法&#xff0c;将对象的创建与使用分离开来&#xff0c;可以减少代码的耦合度。在工厂模式中&#xff0c;我们通过一个工厂类来创建对象&#xff0c;而不是直接在代码中实例化对象。 工厂模式有三种常…

C++并发编程之共享数据(二)

3.1 条件竞争 恶性条件竞争通常发生于完成对多于一个的数据块的修改。例如对一个双向链表的结点的修改。该节点有两个指针。 避免条件竞争的两种方式&#xff1a; 方式一&#xff1a;确保只有进行修改的线程才能看到不变量被破坏时的中间状态。从其他访问线程的角度来 看&…

Git 常用命令

Git操作 克隆远程仓库到本地 # Git初始化&#xff08;仅一次使用的适合需要设置&#xff09; git config --global user.name "用户名" git config --global user.email "邮箱账号"# 朴实无华的拉取 git clone <url>分支 # 查看分支 git branch # …