数据库嵌套查询

:)题外话

好久没写随笔了 最近总是为别的事烦心 揽私活啦 感情问题啦 情绪低落什么的 果然心情不好容易生病 昨天烧了一整天 还好都过去啦 家人是我的全部 想来他们是支撑我又带给我压力的很大一部分因素 注孤生的程序猿宝宝还是多多提升自己吧(づ??????)づ

select t1.*,
case when coalesce(t2.SCORE,0) = 0 then 0 else
round((t1.SCORE-t2.SCORE)/t2.SCORE*100,2) end SCORE_HB, //条件:当前字段不为空且不为0时,可进行环比运算
case when coalesce(t2.ANALYZE_DELAY,0) = 0 then 0 else
round((t1.ANALYZE_DELAY-t2.ANALYZE_DELAY)/t2.ANALYZE_DELAY*100,2) end ANALYZE_DELAY_HB,
case when coalesce(t2.LINK_DELAY,0) = 0 then 0 else
round((t1.LINK_DELAY-t2.LINK_DELAY)/t2.LINK_DELAY*100,2) end LINK_DELAY_HB,
case when coalesce(t2.FIRST_GET_DELAY,0) = 0 then 0 else
round((t1.FIRST_GET_DELAY-t2.FIRST_GET_DELAY)/t2.FIRST_GET_DELAY*100,2) end FIRST_GET_DELAY_HB,
case when coalesce(t2.FIRST_PAGE_DELAY,0) = 0 then 0 else
round((t1.FIRST_PAGE_DELAY-t2.FIRST_PAGE_DELAY)/t2.FIRST_PAGE_DELAY*100,2) end FIRST_PAGE_DELAY_HB,
case when coalesce(t2.DOWNLOAD_RATE,0) = 0 then 0 else
round((t1.DOWNLOAD_RATE-t2.DOWNLOAD_RATE)/t2.DOWNLOAD_RATE*100,2) end DOWNLOAD_RATE_HB,
case when coalesce(t2.WEBLOAD_DELAY,0) = 0 then 0 else
round((t1.WEBLOAD_DELAY-t2.WEBLOAD_DELAY)/t2.WEBLOAD_DELAY*100,2) end WEBLOAD_DELAY_HB,
case when coalesce(t2.TOTAL_DELAY,0) = 0 then 0 else
round((t1.TOTAL_DELAY-t2.TOTAL_DELAY)/t2.TOTAL_DELAY*100,2) end TOTAL_DELAY_HB,
case when coalesce(t2.DOWNLOAD_DELAY,0) = 0 then 0 else
round((t1.DOWNLOAD_DELAY-t2.DOWNLOAD_DELAY)/t2.DOWNLOAD_DELAY*100,2) end DOWNLOAD_DELAY_HB,
case when coalesce(t2.ANALYZE_SUC_RATE,0) = 0 then 0 else
round((t1.ANALYZE_SUC_RATE-t2.ANALYZE_SUC_RATE)/t2.ANALYZE_SUC_RATE*100,2) end ANALYZE_SUC_RATE_HB,
case when coalesce(t2.LINK_SUC_DELAY,0) = 0 then 0 else
round((t1.LINK_SUC_DELAY-t2.LINK_SUC_DELAY)/t2.LINK_SUC_DELAY*100,2) end LINK_SUC_DELAY_HB,
case when coalesce(t2.DOWNLOAD_SIZE,0) = 0 then 0 else
round((t1.DOWNLOAD_SIZE-t2.DOWNLOAD_SIZE)/t2.DOWNLOAD_SIZE*100,2) end DOWNLOAD_SIZE_HB,
case when coalesce(t2.USEABLE_RATE,0) = 0 then 0 else
round((t1.USEABLE_RATE-t2.USEABLE_RATE)/t2.USEABLE_RATE*100,2) end USEABLE_RATE_HB
from

(select
DAY_KEY,
CITY_KEY,
OPER_KEY,
APP_TYPE_KEY,
APP_SUBTYPE_KEY,
HOST_KEY,
round(SCORE,2)as SCORE,//进行任何数据处理后都要给数据列定义别名
ANALYZE_DELAY,
LINK_DELAY,
FIRST_GET_DELAY,
FIRST_PAGE_DELAY,
DOWNLOAD_RATE,
WEBLOAD_DELAY,
TOTAL_DELAY,
DOWNLOAD_DELAY,
round(ANALYZE_SUC_RATE,2)as ANALYZE_SUC_RATE,
LINK_SUC_DELAY,
DOWNLOAD_SIZE,
round(USEABLE_RATE,2)as USEABLE_RATE,
NUM
from DW_FT_WEB_CITY_L2_DY
where 1=1
$[and city_key = (:{city})]
$[and day_key = (:{time})]) t1

left join  //关联查询
(
select
DAY_KEY,
CITY_KEY,
OPER_KEY,
APP_TYPE_KEY,
APP_SUBTYPE_KEY,
HOST_KEY,
round(SCORE,2)as SCORE,
ANALYZE_DELAY,
LINK_DELAY,
FIRST_GET_DELAY,
FIRST_PAGE_DELAY,
DOWNLOAD_RATE,
WEBLOAD_DELAY,
TOTAL_DELAY,
DOWNLOAD_DELAY,
round(ANALYZE_SUC_RATE,2)as ANALYZE_SUC_RATE,
LINK_SUC_DELAY,
DOWNLOAD_SIZE,
round(USEABLE_RATE,2)as USEABLE_RATE,
NUM
from DW_FT_WEB_CITY_L2_DY
where 1=1
$[and city_key = (:{city})]
$[and day_key = to_number(to_char(to_date(‘:{time}‘,‘yyyyMMdd‘)-1,‘yyyyMMdd‘))]) t2
on t1.CITY_KEY=t2.CITY_KEY and t1.OPER_KEY=t2.OPER_KEY

时间: 2024-10-12 19:42:30

数据库嵌套查询的相关文章

数据库---实验三 嵌套查询和视图操作

(一) 嵌套查询 1. 求选修了’MA’的学号和姓名. SQL> select sno,sname from student where sno in(select sno from sc where cno=(select cno from course where cname='数学')); 2. 查询与刘明在同一个系学习的学生. SQL> select * from student where sdept=(select sdept from student where sname='刘

数据库开发基础-SQl Server 主键、外键、子查询(嵌套查询)

主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自

mybatis“集合嵌套查询”和“集合嵌套结果”两种方法实现数据库一对多关系

两个实体类分别如下:User用户类和Goods商品类.一个用户对应多个商品(一对多) package com.leo.entity; import java.util.List; public class User { private Integer id; private String username; private Integer age; private String address; private List<Goods> goodsList; public List<Goo

MySQL数据库实验四:嵌套查询

实验四          嵌套查询 一.实验目的 掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法. 二.实验环境 三.实验示例 1.  查询与"刘晨"在同一个系学习的学生. SELECT Sno,Sname,Sdept FROM Student WHERE Sdept  IN (SELECT Sdept FROM Student WHERE Sname= ' 刘晨 '): 用自身连接完成 SELECT  S1.Sno,S1.Sname,S1.

数据库 - 连接查询、嵌套查询、集合查询

连接查询 连接查询:同时涉及多个表的查询 连接条件或连接谓词:用来连接两个表的条件 一般格式: [<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2> [<表名1>.]<列名1> BETWEEN [<表名2>.]<列名2> AND [<表名2>.]<列名3> 连接字段:连接谓词中的列名称 连接条件中的各连接字段类型必须是可比的,但名字不必是相同的 嵌套循环法(

数据库的创建,插入,查询,平均数,连接查询,嵌套查询,组合查询等

创建表:CREATE TABLE Student( SNO VARCHAR(20), Name VARCHAR(10), Age INTEGER, College VARCHAR(30));CREATE TABLE Course( CourseID VARCHAR(15), CourseName VARCHAR(30), CourseBeforeID VARCHAR(15) );CREATE TABLE Choose( SNO VARCHAR(20), CourseID VARCHAR(30),

lambda表达式封装对数据库的查询

前言: 1.为什么要封装lambda表达式数据库查询,原因有一下几点: 1.1.在以往的开发中进行数据库表查询时,其实所需要的字段就是其中几个,但是在开发中,开发者往往习惯select * 进行查询,当数据多和用户量多时,查询的效率会降低. 1.2.在写查询where条件的时候,总是用string.format去拼接字符串,开发效率低. 1.3.代码不够优雅,代码中嵌套和多sql语句,如果是表字段发生改变时编译器检查不出来,代码出错的概率大. 1.4.本着 write less  do more

Oracle数据库,查询语句、内置函数

一.数据库的查询语句: 1.查询整个表: select * from 表名 例: 2.通过条件查询某一行数据: select * from 表名 where 字段名 例: 3.某一列数据去重查询: select distinct 字段名 from 表名 例: 4.查询的结果按某个字段升序或倒序排列:  select * from 表名 order by 字段名;                  在字段名的后面加desc为降序顺序排列 例: 5.查询某一列在某个范围内的数据: select *

SQL 数据库 子查询及示例

子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数: 另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的数据表. 示例: --创建一个数据库,建立一个部门表格和部门人员表格 Create database gongs --创建一个gongs的数据库 go use