sql结果集合并用union all 不同表的列合并用join

    结果集合并用union all 不同表的列合并用join


SELECT
"模块名",
"事件编码",
"点击数量",
"使用时长(单位:分)"
FROM

(SELECT 
T.fun_name as "模块名",
T.event_code as "事件编码",
SUM(click_records) as "点击数量"
FROM  
(SELECT m.* FROM default.daily_new_clientrpt_master m WHERE event_id in ( SELECT  max(event_id) AS "事件" from default.daily_new_clientrpt_master group by user_name,fun_code ORDER BY "事件" DESC ) ) T   where  day  = today() GROUP BY "模块名" ,"事件编码") T5
JOIN
(
SELECT 
T.fun_name as "模块名",
T.event_code as "事件编码",
round(sum(stay_time)/60000,0) as "使用时长(单位:分)"
FROM  
(SELECT m.* FROM default.daily_new_clientrpt_master m WHERE event_id in 
 ( 
   SELECT "事件" FROM (
   SELECT  max(event_id) AS "事件", max(stay_time) AS "事件1" from default.daily_new_clientrpt_master group by user_name,fun_code  ORDER BY "事件1" DESC) )
 
)  
 T   where  day  = today() AND like(event_code,'%10000')  GROUP BY "模块名" ,"事件编码"
) T6 ON T5."模块名"=T6."模块名" AND T5."事件编码"=T6."事件编码"
    

有两种方法可以将两个不同查询结果合并,一种是使用 UNION 操作符,另一种是使用 JOIN 操作符。 1. UNION 操作符: UNION 操作符可以将两个 SELECT 语句的结果集合并成一个结果集,两个 SELECT 语句的数和名必须相同,的数据类型也必须兼容。 例如,假设有两个,一个是学生,包含学生的姓名和年龄信息,另一个是教师,包含教师的姓名和职称信息,现在需要将两个的查询结果合并为一个结果集,可以使用以下 SQL 语句: SELECT name, age, NULL AS title FROM students UNION SELECT name, NULL AS age, title FROM teachers; 其中,第一个 SELECT 语句查询出学生的姓名和年龄信息,并将 title 的值设置为 NULL,第二个 SELECT 语句查询出教师的姓名和职称信息,并将 age 的值设置为 NULL,然后使用 UNION 操作符将两个结果集合并为一个结果集,NULL 示该在该 SELECT 语句中不需要查询。 2. JOIN 操作符: JOIN 操作符可以将两个的数据按照某个条件进行匹配,并将匹配的结果合并为一个结果集,匹配条件可以是两个的某个相等。 例如,假设有两个,一个是学生,包含学生的学号和姓名信息,另一个是成绩,包含学生的学号和成绩信息,现在需要查询每个学生的姓名和成绩信息,可以使用以下 SQL 语句: SELECT students.name, scores.score FROM students JOIN scores ON students.id = scores.id; 其中,使用 JOIN 操作符将学生和成绩按照学号进行匹配,并将匹配的结果合并为一个结果集,然后查询出每个学生的姓名和成绩信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值