1.case when then 做数据字典转换
2. ROUND(CEILING(t1.order_amount*1)/100,2) 上取整+保留位小数
3.substring(cast(t.trade_time as string),0,7) 日期转换,取到月份,如果是10则到日
4.unix_timestamp(create_time)+300<unix_timestamp(trade_time) 两个时间差,300秒
5.order by 条件和查询结果冲突情况下,最好先把order by 条件去掉
select date1 ,XXXid1 ,paymethod1 , count1 ,orderamount1 ,
CASE
when paymethod1='PayPal' then fee1*5
else fee1
END as fee2 from
(select a.tradetime as date1,a.XXXId as XXXid1 ,a.paymethod as paymethod1,count(*) as count1,sum(a.orderamount) as orderamount1,sum(a.fee) as fee1 from
(select t1.pay_seq as payseq, substring(cast(t.trade_time as string),0,10) as tradetime,t.pay_amount as payamount ,t.order_amount as orderamount
,CASE
when t.XXX_id='YYY160823142921802' and t1.order_amount*6 >= 10 then ROUND(CEILING(t1.order_amount*0.6)/100,2)
when t.XXX_id='YYY160823142921802' and t1.order_amount*6 < 10 then 0.01
when t.XXX_id='YYY160809193618262' and t1.order_amount*10 >= 10 then ROUND(CEILING(t1.order_amount*1)/100,2)
when t.XXX_id='YYY160809193618262' and t1.order_amount*10 < 10 then 0.01
when t.XXX_id='YYY160712075256902' and t1.order_amount*10 >= 10 then ROUND(CEILING(t1.order_amount*1)/100,2)
when t.XXX_id='YYY160712075256902' and t1.order_amount*10 < 10 then 0.01
when t.XXX_id='YYY171009125604524' and t1.order_amount*10 >= 10 then ROUND(CEILING(t1.order_amount*1)/100,2)
when t.XXX_id='YYY171009125604524' and t1.order_amount*10 < 10 then 0.01
when t.XXX_id='YYY171121150246521' and t1.order_amount*10 >= 10 then ROUND(CEILING(t1.order_amount*1)/100,2)
when t.XXX_id='YYY171121150246521' and t1.order_amount*10 < 10 then 0.01
end as fee ,
case
when t.XXX_id='YYY160823142921802' THEN '机构A'
when t.XXX_id='YYY170320123235979' THEN '机构B'
END as XXXId,
case
when t2.pay_method='A0' THEN '余额'
WHEN t2.pay_method='A1' THEN '支付宝'
WHEN t2.pay_method='A2' THEN '微信'
END as paymethod
from odl_table_name_finance t,odl_table_name_payment_finance t1,odl_table_name_payment_detail_finance t2 where t.fund_order_id = t1.fund_order_id and t1.pay_seq = t2.pay_seq and
substring(cast(t.trade_time as string),0,7) ='2017-12' and t.order_type='03' and t.order_status='S' and t1.pay_status='S' and t.order_status='S' )
a where 1=1 group by a.XXXId,a.tradetime,a.paymethod order by a.tradetime,a.XXXId,a.paymethod limit 1000) dd
where 1=1 limit 1000
select a.alldate ,a.allamount as allamount,a.allcount as allcount,b.sucamount as sucamount,b.succount as succount,c.amount5 as amount5,c.count5 as count5
from
(select sum(order_amount) allamount,count(*) allcount,partner_id as partnerid1,substring(cast(create_time as string),0,10) alldate from odl_table_name_finance where create_time between '2017-12-01' and '2018-01-01' and order_type='03' group by partner_id,substring(cast(create_time as string),0,10)) a
left join
(select sum(order_amount) sucamount,count(*) succount,partner_id as partnerid2,substring(cast(create_time as string),0,10) sucdate from odl_table_name_finance where create_time between '2017-12-01' and '2018-01-01' and order_type='03' and order_status='S' group by partner_id,substring(cast(create_time as string),0,10)) b
on a.partnerid1=b.partnerid2
and a.alldate = b.sucdate
left join
(select sum(order_amount) amount5,count(*) count5,partner_id as partnerid3,substring(cast(create_time as string),0,10) sucdate from odl_table_name_finance where create_time between '2017-12-01' and '2018-01-01' and order_type='03' and order_status='S' and unix_timestamp(create_time)+300<unix_timestamp(trade_time) group by partner_id,substring(cast(create_time as string),0,10)) c
on a.partnerid1=c.partnerid3 and a.alldate = c.sucdate
limit 1000
分享到:
相关推荐
这些语句会包含CREATE TABLE语句,描述了表的名称、列定义、分区信息以及任何其他相关的表属性,如表的存储格式、位置等。 例如,一个简单的建表语句可能如下所示: ```sql CREATE DATABASE IF NOT EXISTS mydb; ...
hive建表语句hive建表语句hive建表语句hive建表语句hive建表语句hive建表语句
下面我们将深入探讨Hive建表的相关知识点。 首先,我们需要了解Hive的基本概念。Hive是由Facebook开源的一个数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,使得用户可以方便地...
自己平时用到的hive语句做进一步总结和汇总! 方便我们开发人员开发查阅!
6. **执行Hive语句**:连接Hive服务,执行生成的建表语句,创建Hive表。 7. **数据导入**:使用ETL工具(如Apache Sqoop)或编写脚本,将MySQL数据导入到Hive中。这一步可能涉及数据格式转换、数据清洗等操作。 8....
**Hive实战:统计各种TOP的...通过本项目的实践,我们可以掌握如何使用Hive进行数据导入、创建表、编写HQL语句以及执行各种统计任务,从而提升大数据分析的能力。在实际工作中,这样的技能对于理解和优化业务至关重要。
根据excel中表的字段清单,批量生成建表语句; 打开工具,按格式填入表名、字段、类型等内容,点击“视图”-->“宏”-->“查看宏”-->“执行”
### HIVE-SQL操作语句详解 #### 一、创建表 (CREATE TABLE) 在Hive中,`CREATE TABLE` 语句用于创建新的表。与传统的关系型数据库类似,但在Hive中有其特殊之处。 ##### 示例 ```sql hive> CREATE TABLE pokes ...
Java作为企业级应用开发的主要语言,经常被用来处理与数据相关的任务,包括从Excel文件读取数据并生成Hive建表语句。下面我们将详细探讨如何使用Java和Apache POI库来实现这一功能。 首先,Apache POI是Java中处理...
数据库相关操作 Hive配置单元包含一个名为 default 默认的数据库. create database [if not exists] ;---创建数据库 show databases; --显示所有数据库 drop database if exists <database name> ...
Hive 优化方法整理是 Hive 数据处理过程中的重要步骤,涉及到 Hive 的类 SQL 语句本身进行调优、参数调优、Hadoop 的 HDFS 参数调优和 Map/Reduce 调优等多个方面。 Hive 类 SQL 语句优化 1. 尽量尽早地过滤数据...
在excel模板中填写自己表的字段英文名、字段类型、字段中文名、分区英文名、分区数据类型、分区中文名、表英文名、表中文名,自动生成建表语句和查询语句,提高日常数据效率。 前提:本机安装java1.7,并且配置了...
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES; 6. Jline包版本不一致的问题...
基于oracle或者mysql生成自动建表同步源数据表结构及注释
hive外部表使用语句
hive内部表使用语句
Hive基本命令整理 作为大数据处理的重要工具,Hive 提供了许多实用的命令来帮助开发人员高效地处理和分析数据。下面是 Hive 中的一些基本命令整理,涵盖了表的创建、加载数据、查看结构信息、更新表名、添加新列、...
Hive表生成工具,Hive表生成工具Hive表生成工具
以上知识点涵盖了Hive官方文档的部分内容,根据提供的文档片段整理而来。了解这些基础知识对于熟悉和掌握Hive的使用至关重要。而官方文档通常还会包含更深入的模块介绍,如数据类型、函数、分区、索引、存储和数据...