[size=medium]
--screen
insert overwrite ana_fx_goal.mc_daily_kv partition(hdfs_par='20161221')
select * from
(
select
cast(
concat(substr('20161221', 1, 4), '-', substr('20161221', 5, 2), '-', substr('20161221', 7, 2))
as timestamp
)
as day_begin,
NOW() as generate_time,
'screen_distribution' as json_key,
json_output as json_value
from
(
select
concat(
'{',
group_concat(
concat(wrapped_column_key, ':', 0),
','
),
'}'
) as json_output
from
(
select
concat('"', screen, '"') as wrapped_column_key,
case
when cnt is null then 'null'
when 'int' = 'string' then concat('"', cast(cnt as string), '"')
else cast(cnt as string)
end as wrapped_column_value
from
(
with analyse_table as(
with device_profile as(
select *,ana_fx_middle.get_device_info(model) as readablename from src_huidu_mc.device_profile1
)
select
deviceid,
screen
from device_profile
)
select screen,count(distinct deviceid) as cnt from analyse_table group by screen
) as tmp1_B
) as tmp2_B
) as tmp
limit 1
) as t1
union all
select * from
(
select
day_begin,
generate_time,
json_key,
json_value
from ana_fx_goal.mc_daily_kv
where hdfs_par = '20161221'
and json_key != 'screen_distribution'
) as t2
;
--model
insert overwrite ana_fx_goal.mc_daily_kv partition(hdfs_par='20161221')
select * from
(
select
cast(
concat(substr('20161221', 1, 4), '-', substr('20161221', 5, 2), '-', substr('20161221', 7, 2))
as timestamp
)
as day_begin,
NOW() as generate_time,
'model_distribution' as json_key,
json_output as json_value
from
(
select
concat(
'{',
group_concat(
concat(wrapped_column_key, ':', wrapped_column_value),
','
),
'}'
) as json_output
from
(
select
concat('"', dev_name, '"') as wrapped_column_key,
case
when cnt is null then 'null'
when 'int' = 'string' then concat('"', cast(cnt as string), '"')
else cast(cnt as string)
end as wrapped_column_value
from
(
with analyse_table as(
with device_profile as(
select *,ana_fx_middle.get_device_info(model) as readablename from src_huidu_mc.device_profile1
)
select
deviceid,
regexp_extract(readablename, '^([^\\t]*)\\t([^\\t]*)\\t*(.*)$', 2) as dev_name
from device_profile
)
select dev_name,count(distinct deviceid) as cnt from analyse_table group by dev_name
) as tmp1_E
) as tmp2_E
) as tmp
limit 1
) as t1
union all
select * from
(
select
day_begin,
generate_time,
json_key,
json_value
from ana_fx_goal.mc_daily_kv
where hdfs_par = '20161221'
and json_key != 'model_distribution'
) as t2
;
--brand
insert overwrite ana_fx_goal.mc_daily_kv partition(hdfs_par='20161221')
select * from
(
select
cast(
concat(substr('20161221', 1, 4), '-', substr('20161221', 5, 2), '-', substr('20161221', 7, 2))
as timestamp
)
as day_begin,
NOW() as generate_time,
'brand_distribution' as json_key,
json_output as json_value
from
(
select
concat(
'{',
group_concat(
concat(wrapped_column_key, ':', wrapped_column_value),
','
),
'}'
) as json_output
from
(
select
concat('"', dev_brand, '"') as wrapped_column_key,
case
when cnt is null then 'null'
when 'int' = 'string' then concat('"', cast(cnt as string), '"')
else cast(cnt as string)
end as wrapped_column_value
from
(
with analyse_table as(
with device_profile as(
select *,ana_fx_middle.get_device_info(model) as readablename from src_huidu_mc.device_profile1
)
select
deviceid,
regexp_extract(readablename, '^([^\\t]*)\\t([^\\t]*)\\t*(.*)$', 1) as dev_brand
from device_profile
)
select dev_brand,count(distinct deviceid) as cnt from analyse_table group by dev_brand
) as tmp1_H
) as tmp2_H
) as tmp
limit 1
) as t1
union all
select * from
(
select
day_begin,
generate_time,
json_key,
json_value
from ana_fx_goal.mc_daily_kv
where hdfs_par = '20161221'
and json_key != 'brand_distribution'
) as t2
;
[/size]
分享到:
相关推荐
首先,`get_json_object` 函数用于从JSON字符串中提取特定字段的值。它的语法是 `get_json_object(json_string, json_path)`,其中 `json_string` 是包含JSON数据的字符串,而 `json_path` 是一个类似于JSON Path的...
在实际应用中,我们可能需要将JSON字符串存储在`CLOB`或`BLOB`类型的列中,然后利用Oracle的JSON函数进行读取和操作。例如,`JSON_OBJECT_T`和`JSON_ARRAY_T`是两个实用的类型,它们分别代表JSON对象和数组,可以...
2. **写入JSON到SQLite**: 使用`json`函数可以将JSON字符串存储为一个BLOB类型的数据。例如,可以使用`INSERT INTO table (json_column) VALUES (json('{"key": "value"}'));`来插入一个JSON对象。 3. **读取JSON...
在这个查询中,`TTTT`表的`INFO`列包含JSON字符串,函数`parsejsonstr`将从中提取`"AGE"`字段直到`"HEIGHT"`字段前的内容。 总结来说,Oracle提供了强大的JSON支持,包括解析、查询和操作JSON数据的能力。自定义的`...
使用`BufferedReader`来逐行读取CLOB中的内容,并将其存储到字符串缓冲区中。这里使用了`BufferedReader`来提高读取效率。 ```java StringBuffer sb = new StringBuffer(); BufferedReader br = new ...
在MyBatis中,如果要将Java对象存入或从JSON类型字段取出,我们需要一个自定义的TypeHandler来完成Java对象与JSON字符串之间的转换。 `JacksonTypeHandler`是自定义TypeHandler的一个例子,它利用Jackson库进行JSON...
例如,使用PHP的MySQLi或PDO扩展,可以建立到MySQL数据库的连接,执行SQL查询,然后用`json_encode`函数将查询结果转化为JSON字符串。 接下来,Flash通过使用URLLoader类发送HTTP GET或POST请求到服务器上的服务端...
这篇文档将详细阐述如何从MySQL数据库的表结构中读取信息来生成API接口文档。 首先,我们来看如何从MySQL数据库中获取表结构。在MySQL中,可以使用`DESCRIBE`或`SHOW COLUMNS`命令来查看一个表的结构。例如,如果你...
2. **手动构建JSON**:对于简单的查询结果,可以手动构建JSON字符串,但这通常效率较低且容易出错,特别是在处理复杂数据结构时。 3. **利用现有的库**:例如,使用Google的Gson库或Jackson库,它们提供了强大的...
登录MySQL服务器,使用SQL命令行或者图形界面工具(如MySQL Workbench)创建一个新的数据库,然后创建相应的表结构来存储从JSON文件中解析出的数据。 对于JSON文件的解析,你可以使用Newtonsoft.Json库,它提供了...
Delphi提供了JSONValue类,它可以解析JSON字符串并生成一个TJSONValue对象树,这个树可以遍历以获取数据。TJSONValue对象有ToJSONObject和ToJSONArray方法,可以将JSON字符串转换为对应的TJSONObject和TJSONArray...
它的主要任务是根据这些参数生成SQL查询语句,打开一个ADO Recordset对象来执行查询,并将结果集转换为JSON字符串。 1. **SQL查询的构建**: - 当`curpage`大于1时,函数使用分页查询,通过两个子查询实现。第一...
使用这个数据库CHM文档生成工具,开发者和文档撰写者可以方便地从数据库中提取结构信息,如表结构、字段说明、索引、视图和存储过程等,然后将这些信息转换为易于阅读的文档。这有助于提高团队之间的沟通效率,减少...
这个存储过程将XML数据转换为JSON字符串。由于SQL Server 2016及以上版本提供了内置的JSON支持,你可以使用`FOR JSON`子句直接将查询结果转换为JSON,而无需先转换为XML。例如: ```sql SELECT * FROM table FOR ...
Python的`pymysql`库通常用于与MySQL交互,它支持将JSON对象转换为字符串,然后存储到MySQL的JSON字段中。通过这个例子,你将学习如何创建包含JSON字段的数据库表,以及如何插入、查询和更新JSON数据。 接下来,...
- Jackson库:Jackson是Java中常用的JSON解析库,提供了`JsonParser`和`ObjectMapper`等类,可以方便地将JSON字符串转换为Java对象。 - Gson库:Google提供的Gson库可以将JSON字符串直接映射为Java对象,反之亦然...
它可以将.NET对象序列化为JSON字符串,也可以从JSON字符串反序列化回.NET对象。这个工具包可能包括了如何使用Json.NET与MySQL数据库进行交互的示例代码,比如如何将.NET对象转换成JSON并存入MySQL,或者如何从数据库...
在MySQL 5.6中,虽然没有像更高版本那样的JSON列类型和丰富的JSON函数,但可以通过一些字符串处理函数来实现基本的解析功能。 `json_extract_c` 是一个自定义的MySQL函数,用于从JSON对象中提取指定字段的值。这个...
如果需要从数据库中读取数据,使用`json.loads()`反序列化JSON字符串回Python对象。 4. **查询和更新**:使用SQL语句查询和更新包含JSON数据的记录。例如,可以使用`WHERE`子句筛选满足特定条件的JSON数据,或者使用...
要将JSON对象存入MySQL的JSON字段,首先需要将Python字典或列表序列化为JSON字符串,然后作为值传递给INSERT语句。例如: ```python import json import mysql.connector data = {'key1': 'value1', 'key2': '...